本技術(shù)涉及微服務(wù),特別涉及一種基于服務(wù)網(wǎng)格集群的通信方法、裝置及集群。
背景技術(shù):
1、微服務(wù)架構(gòu)(microservice?architecture)為一種面向服務(wù)的架構(gòu)(serviceoriented?architecture,soa),其將復(fù)雜系統(tǒng)切分為多個(gè)小服務(wù)。這些小服務(wù)可稱為微服務(wù)。每個(gè)微服務(wù)負(fù)責(zé)實(shí)現(xiàn)一個(gè)獨(dú)立的業(yè)務(wù)邏輯。微服務(wù)可以運(yùn)行在容器(container)中。其中,多個(gè)相互之間依賴性較高微服務(wù)所在的容器可構(gòu)成一個(gè)容器組。
2、服務(wù)網(wǎng)格(service?mesh)技術(shù)將微服務(wù)中的流量管理邏輯剝離到了微服務(wù)外的數(shù)據(jù)代理中,以實(shí)現(xiàn)業(yè)務(wù)輕量化和服務(wù)治理基礎(chǔ)設(shè)施化。目前,服務(wù)網(wǎng)格技術(shù)已發(fā)展出了多種代理模式,例如,容器組級(jí)別的代理模式、節(jié)點(diǎn)級(jí)別的代理模式等。其中,在容器組級(jí)別的代理模式中,一個(gè)數(shù)據(jù)代理僅為一個(gè)容器組提供的流量管理。在節(jié)點(diǎn)級(jí)別的代理模式中,一個(gè)數(shù)據(jù)代理為運(yùn)行在節(jié)點(diǎn)(node)上多個(gè)容器組提供的流量管理。這導(dǎo)致了不同代理模式下的數(shù)據(jù)代理的通信方式不同,使得不同代理模式下的數(shù)據(jù)代理不能互通。這使得一個(gè)服務(wù)網(wǎng)格集群中的節(jié)點(diǎn)必須采用同一代理模式,用戶無(wú)法根據(jù)需要,在服務(wù)網(wǎng)格集群中選擇不同代理模式。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施例提出了一種基于服務(wù)網(wǎng)格集群的通信方法、裝置及集群,可以使得代理模式不同的節(jié)點(diǎn)中的容器組相互通信。
2、第一方面,提供了一種基于服務(wù)網(wǎng)格集群的通信方法,集群具有多種代理模式,且該集群包括多個(gè)業(yè)務(wù)節(jié)點(diǎn),其中,一個(gè)業(yè)務(wù)節(jié)點(diǎn)采用多種代理模式中的一種,且每種代理模式由至少一個(gè)業(yè)務(wù)節(jié)點(diǎn)采用;業(yè)務(wù)節(jié)點(diǎn)運(yùn)行有容器組和容器組對(duì)應(yīng)的數(shù)據(jù)代理,容器組對(duì)應(yīng)的數(shù)據(jù)代理用于對(duì)容器組發(fā)出的數(shù)據(jù)包進(jìn)行流量管理;該方法包括:第一數(shù)據(jù)代理接收第一容器組發(fā)出的第一數(shù)據(jù)包;第一容器組和第一數(shù)據(jù)代理運(yùn)行在多個(gè)業(yè)務(wù)節(jié)點(diǎn)中的第一業(yè)務(wù)節(jié)點(diǎn)上,且第一容器組對(duì)應(yīng)第一數(shù)據(jù)代理;第一數(shù)據(jù)代理在確認(rèn)第一數(shù)據(jù)包的目的地為第二容器組時(shí),識(shí)別第二容器組所在的第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式;第一數(shù)據(jù)代理基于第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式和第二容器組的地址,向第二容器組對(duì)應(yīng)的第二數(shù)據(jù)代理發(fā)送第一數(shù)據(jù)包,以通過(guò)第二數(shù)據(jù)代理將第一數(shù)據(jù)包發(fā)送至第二容器組。
3、其中,該多種代理模式包括多個(gè)容器組對(duì)應(yīng)相同的數(shù)據(jù)代理的代理模式,容器組和數(shù)據(jù)代理一一對(duì)應(yīng)的代理模式。其中,多個(gè)容器組對(duì)應(yīng)相同的數(shù)據(jù)代理是指多個(gè)容器組對(duì)應(yīng)同一個(gè)或同一組數(shù)據(jù)代理。一組數(shù)據(jù)代理可包括多個(gè)數(shù)據(jù)代理。第一業(yè)務(wù)節(jié)點(diǎn)采用的代理模式可以為多個(gè)容器組對(duì)應(yīng)相同的數(shù)據(jù)代理代理模式,也可以為容器組和數(shù)據(jù)代理一一對(duì)應(yīng)的代理模式。
4、通過(guò)本方法,第一業(yè)務(wù)節(jié)點(diǎn)運(yùn)行的容器組向其他容器組發(fā)送數(shù)據(jù)包時(shí),可以識(shí)別該數(shù)據(jù)包的目標(biāo)容器組所在節(jié)點(diǎn)的代理模式。然后,基于目標(biāo)容器組所在節(jié)點(diǎn)的代理模式和目標(biāo)容器組的地址,向目標(biāo)容器組所在節(jié)點(diǎn)發(fā)送該數(shù)據(jù)包。從而針對(duì)不同的代理模式的節(jié)點(diǎn),可針對(duì)性地采取不同的發(fā)送方式,實(shí)現(xiàn)了代理模式不同的節(jié)點(diǎn)中的容器組相互通信。
5、由于本方法實(shí)現(xiàn)了代理模式不同的節(jié)點(diǎn)中的容器組相互通信,因此,利用本方法,無(wú)需集群中的節(jié)點(diǎn)必須采用相同的代理模式,用戶可以在服務(wù)網(wǎng)格集群中部署代理模式不同的節(jié)點(diǎn),或者改變集群中的某個(gè)或某些節(jié)點(diǎn)的代理模式,或者,在集群中加入代理模式與已有節(jié)點(diǎn)不同的節(jié)點(diǎn),實(shí)現(xiàn)了節(jié)點(diǎn)代理模式的靈活部署。
6、也就是說(shuō),通過(guò)本方法,用戶可以根據(jù)需要(例如節(jié)約成本、提高資源利用率等),在服務(wù)網(wǎng)格集群中部署代理模式不同的節(jié)點(diǎn)。
7、在一種可能的實(shí)現(xiàn)方式中,集群包括網(wǎng)格控制臺(tái),網(wǎng)格控制臺(tái)用于向第一數(shù)據(jù)代理發(fā)送第二容器組的配置信息,配置信息用于指示第二業(yè)務(wù)節(jié)點(diǎn)的代理模式;識(shí)別第二容器組所在的第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式,包括:基于第二容器組的配置信息,識(shí)別第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式。
8、在該實(shí)現(xiàn)方式中,網(wǎng)格控制臺(tái)可以向數(shù)據(jù)代理下發(fā)容器組的配置信息,如此,數(shù)據(jù)代理在發(fā)送目的地為某個(gè)容器組的數(shù)據(jù)包時(shí),可以基于該容器組的配置信息,識(shí)別出該容器組所在節(jié)點(diǎn)的代理模式。
9、在一種可能的實(shí)現(xiàn)方式中,基于第二容器組的配置信息,識(shí)別第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式,包括:當(dāng)檢測(cè)到配置信息包含第二數(shù)據(jù)代理的地址時(shí),第一數(shù)據(jù)代理確認(rèn)第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式為多個(gè)容器組對(duì)應(yīng)相同的數(shù)據(jù)代理。
10、在該實(shí)現(xiàn)方式中,通過(guò)容器組的配置信息中是否包含數(shù)據(jù)代理的地址,來(lái)指示該容器組所在節(jié)點(diǎn)采用的代理模式,不但可使得以該容器組為目的地進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)的數(shù)據(jù)代理能夠基于該配置信息,識(shí)別容器組所在節(jié)點(diǎn)采用的代理模式,還可以從該配置信息中獲取該容器組對(duì)應(yīng)的數(shù)據(jù)代理的地址。
11、在一種可能的實(shí)現(xiàn)方式中,第二業(yè)務(wù)節(jié)點(diǎn)對(duì)應(yīng)有控制器,控制器用于在確認(rèn)第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式為多個(gè)容器組對(duì)應(yīng)相同的數(shù)據(jù)代理時(shí),向網(wǎng)格控制臺(tái)發(fā)送第二數(shù)據(jù)代理的地址,使得網(wǎng)格控制臺(tái)將第二數(shù)據(jù)代理的地址包含在配置信息中。
12、在該實(shí)現(xiàn)方式中,容器組所在節(jié)點(diǎn)對(duì)應(yīng)的控制器可以向網(wǎng)格控制臺(tái),上報(bào)該容器組對(duì)應(yīng)的數(shù)據(jù)代理的地址;其中,網(wǎng)格控制臺(tái)可將該容器組對(duì)應(yīng)的數(shù)據(jù)代理的地址包含在配置信息中,從而可通過(guò)配置信息指示該容器組所在節(jié)點(diǎn)的代理模式。
13、在一種可能的實(shí)現(xiàn)方式中,第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式為多個(gè)容器組對(duì)應(yīng)相同的數(shù)據(jù)代理;第一數(shù)據(jù)代理基于第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式和第二容器組的地址,向第二容器組對(duì)應(yīng)的第二數(shù)據(jù)代理發(fā)送第一數(shù)據(jù)包,包括:第一數(shù)據(jù)代理獲取第二數(shù)據(jù)代理的地址;第一數(shù)據(jù)代理基于第二數(shù)據(jù)代理的地址,將第一數(shù)據(jù)包和第二容器組的地址發(fā)送至第二數(shù)據(jù)代理;其中,第二數(shù)據(jù)代理用于基于第二容器組的地址,將第一數(shù)據(jù)包轉(zhuǎn)發(fā)至第二容器組。
14、在該實(shí)現(xiàn)方式中,第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式為多個(gè)容器組對(duì)應(yīng)相同的數(shù)據(jù)代理,說(shuō)明第二數(shù)據(jù)代理除了對(duì)應(yīng)第二容器組,還對(duì)應(yīng)其他容器組。如此,第一數(shù)據(jù)代理可以基于第二數(shù)據(jù)代理的地址,將第一數(shù)據(jù)包和第二容器組的地址發(fā)送至第二數(shù)據(jù)代理,使得第二數(shù)據(jù)代理可基于第二容器組的地址,將第一數(shù)據(jù)包發(fā)送至第二容器組。
15、在一種可能的實(shí)現(xiàn)方式中,基于第二數(shù)據(jù)代理的地址,將第一數(shù)據(jù)包和第二容器組的地址發(fā)送至第二數(shù)據(jù)代理,包括:為第一數(shù)據(jù)包添加包頭,得到第二數(shù)據(jù)包;該包頭包含第二容器組的地址;基于第二數(shù)據(jù)代理的地址,將第二數(shù)據(jù)包發(fā)送至第二數(shù)據(jù)代理;第二數(shù)據(jù)代理用于從包頭中得到第二容器組的地址。
16、在該實(shí)現(xiàn)方式中,可以對(duì)第一數(shù)據(jù)包進(jìn)行進(jìn)一步封裝,得到第二數(shù)據(jù)包,并在第二數(shù)據(jù)包的包頭中添加第二容器組的地址。如此,通過(guò)將第二數(shù)據(jù)包發(fā)送至第二數(shù)據(jù)代理,將第一數(shù)據(jù)包和第二容器組的地址發(fā)送至第二數(shù)據(jù)代理。
17、在一種可能的實(shí)現(xiàn)方式中,第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式為容器組和數(shù)據(jù)代理一一對(duì)應(yīng);第一數(shù)據(jù)代理基于第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式和第二容器組的地址,向第二容器組對(duì)應(yīng)的第二數(shù)據(jù)代理發(fā)送第一數(shù)據(jù)包,包括:第一數(shù)據(jù)代理以第二容器組的地址為第二數(shù)據(jù)代理的地址,將第一數(shù)據(jù)包發(fā)送至第二數(shù)據(jù)代理。
18、在該實(shí)現(xiàn)方式中,第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式為容器組和數(shù)據(jù)代理一一對(duì)應(yīng),說(shuō)明第二數(shù)據(jù)代理除了僅對(duì)應(yīng)第二容器組,而不對(duì)應(yīng)其他容器組。如此,第一數(shù)據(jù)代理可以基于第二容器組的地址,將第一數(shù)據(jù)包和第二容器組的地址發(fā)送至第二數(shù)據(jù)代理。
19、第二方面,提供了一種通信裝置,該裝置用作服務(wù)網(wǎng)格集群中的第一業(yè)務(wù)節(jié)點(diǎn)運(yùn)行的第一數(shù)據(jù)代理,集群具有多種代理模式,且該集群包括多個(gè)業(yè)務(wù)節(jié)點(diǎn),其中,一個(gè)業(yè)務(wù)節(jié)點(diǎn)采用多種代理模式中的一種,且每種代理模式由至少一個(gè)業(yè)務(wù)節(jié)點(diǎn)采用;業(yè)務(wù)節(jié)點(diǎn)運(yùn)行有容器組和容器組對(duì)應(yīng)的數(shù)據(jù)代理,容器組對(duì)應(yīng)的數(shù)據(jù)代理用于對(duì)容器組發(fā)出的數(shù)據(jù)包進(jìn)行流量管理;該裝置包括:接收模塊,用于接收第一容器組發(fā)出的第一數(shù)據(jù)包;第一容器組運(yùn)行在第一業(yè)務(wù)節(jié)點(diǎn)上,且第一容器組對(duì)應(yīng)第一數(shù)據(jù)代理;識(shí)別模塊,用于在確認(rèn)第一數(shù)據(jù)包的目的地為第二容器組時(shí),識(shí)別第二容器組所在的第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式;發(fā)送模塊,用于基于第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式和第二容器組的地址,向第二容器組對(duì)應(yīng)的第二數(shù)據(jù)代理發(fā)送第一數(shù)據(jù)包,以通過(guò)第二數(shù)據(jù)代理將第一數(shù)據(jù)包發(fā)送至第二容器組。
20、在一種可能的實(shí)現(xiàn)方式中,集群包括網(wǎng)格控制臺(tái),網(wǎng)格控制臺(tái)用于向第一數(shù)據(jù)代理發(fā)送第二容器組的配置信息,配置信息用于指示第二業(yè)務(wù)節(jié)點(diǎn)的代理模式;識(shí)別模塊用于:基于第二容器組的配置信息,識(shí)別第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式。
21、在一種可能的實(shí)現(xiàn)方式中,識(shí)別模塊用于:當(dāng)檢測(cè)到配置信息包含第二數(shù)據(jù)代理的地址時(shí),第一數(shù)據(jù)代理確認(rèn)第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式為多個(gè)容器組對(duì)應(yīng)相同的數(shù)據(jù)代理。
22、在一種可能的實(shí)現(xiàn)方式中,第二業(yè)務(wù)節(jié)點(diǎn)對(duì)應(yīng)有控制器,控制器用于在確認(rèn)第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式為多個(gè)容器組對(duì)應(yīng)相同的數(shù)據(jù)代理時(shí),向網(wǎng)格控制臺(tái)發(fā)送第二數(shù)據(jù)代理的地址;其中,網(wǎng)格控制臺(tái)用于將第二數(shù)據(jù)代理的地址包含在配置信息中。
23、在一種可能的實(shí)現(xiàn)方式中,第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式為多個(gè)容器組對(duì)應(yīng)相同的數(shù)據(jù)代理;發(fā)送模塊用于:第一數(shù)據(jù)代理獲取第二數(shù)據(jù)代理的地址;第一數(shù)據(jù)代理基于第二數(shù)據(jù)代理的地址,將第一數(shù)據(jù)包和第二容器組的地址發(fā)送至第二數(shù)據(jù)代理;其中,第二數(shù)據(jù)代理用于基于第二容器組的地址,將第一數(shù)據(jù)包轉(zhuǎn)發(fā)至第二容器組。
24、在一種可能的實(shí)現(xiàn)方式中,發(fā)送模塊用于:為第一數(shù)據(jù)包添加包頭,得到第二數(shù)據(jù)包,該包頭包含第二容器組的地址;基于第二數(shù)據(jù)代理的地址,將第二數(shù)據(jù)包發(fā)送至第二數(shù)據(jù)代理;第二數(shù)據(jù)代理用于從包頭中得到第二容器組的地址。
25、在一種可能的實(shí)現(xiàn)方式中,第二業(yè)務(wù)節(jié)點(diǎn)采用的代理模式為容器組和數(shù)據(jù)代理一一對(duì)應(yīng);發(fā)送模塊用于:第一數(shù)據(jù)代理以第二容器組的地址為第二數(shù)據(jù)代理的地址,將第一數(shù)據(jù)包發(fā)送至第二數(shù)據(jù)代理。
26、第三方面,提供了一種運(yùn)行容器組的節(jié)點(diǎn),包括處理器和存儲(chǔ)器,處理器用于執(zhí)行存儲(chǔ)器中存儲(chǔ)的指令,以執(zhí)行第一方面提供的方法。
27、第四方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),包括計(jì)算機(jī)程序指令,當(dāng)計(jì)算機(jī)程序指令由計(jì)算設(shè)備集群執(zhí)行時(shí),計(jì)算設(shè)備集群執(zhí)行第一方面提供的方法。
28、第五方面,提供了一種包含指令的計(jì)算機(jī)程序產(chǎn)品,當(dāng)指令被計(jì)算機(jī)設(shè)備集群運(yùn)行時(shí),使得計(jì)算機(jī)設(shè)備集群執(zhí)行第一方面提供的方法。
29、第二方面至第五方面的有益效果可參考上文對(duì)第一方面的有益效果的介紹,在此不再贅述。