本公開涉及計(jì)算機(jī),尤其涉及一種服務(wù)編排方法、裝置、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、服務(wù)編排即是將做一件事情分解得到的操作步驟組裝和連接在一起,這些步驟間有具體的執(zhí)行順序和判斷邏輯,同時(shí)又進(jìn)行輸入和輸出間的數(shù)據(jù)內(nèi)部交互。
2、但是,現(xiàn)有的服務(wù)編排技術(shù),難以快速地響應(yīng)新的業(yè)務(wù)場景和需求,需要手動編排,這會導(dǎo)致編排過程復(fù)雜,服務(wù)調(diào)用效率下降問題。
技術(shù)實(shí)現(xiàn)思路
1、本公開提供一種服務(wù)編排方法、裝置、電子設(shè)備及存儲介質(zhì),以解決相關(guān)技術(shù)中的問題。
2、本公開的第一方面實(shí)施例提出了一種服務(wù)編排方法,該方法包括:
3、接收客戶端發(fā)送的服務(wù)編碼;服務(wù)編碼用于指示客戶端的至少一個(gè)服務(wù)請求;
4、基于服務(wù)編碼,獲取由至少一個(gè)服務(wù)請求組裝后的動態(tài)執(zhí)行代碼塊;動態(tài)執(zhí)行代碼塊用于指示至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求對應(yīng)的應(yīng)用程序接口(applicationprogramming?interface,簡稱api)信息及執(zhí)行順序;
5、基于動態(tài)執(zhí)行代碼塊,獲取至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求對應(yīng)的api信息及執(zhí)行順序;
6、通過對應(yīng)的api,按照執(zhí)行順序執(zhí)行至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求,得到執(zhí)行結(jié)果;
7、向客戶端發(fā)送執(zhí)行結(jié)果。
8、在本公開的一些實(shí)施例中,接收客戶端發(fā)送的服務(wù)編碼之前,本公開提供的方法還包括:
9、接收客戶端發(fā)送的鑒權(quán)信息;
10、響應(yīng)于鑒權(quán)信息為合法信息,向客戶端發(fā)送或不發(fā)送訪問成功信息。
11、在本公開的一些實(shí)施例中,基于服務(wù)編碼,獲取由至少一個(gè)服務(wù)請求組裝后的動態(tài)執(zhí)行代碼塊,包括:
12、解析服務(wù)編碼,得到第一解析結(jié)果;第一解析結(jié)果中至少包含客戶端的至少一個(gè)服務(wù)請求;
13、根據(jù)第一解析結(jié)果,從redis緩存中獲取至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求對應(yīng)的api信息;
14、及,
15、根據(jù)第一解析結(jié)果,從zookeeper中獲取至少一個(gè)服務(wù)請求中所有服務(wù)請求組裝后的動態(tài)執(zhí)行代碼塊。
16、在本公開的一些實(shí)施例中,基于動態(tài)執(zhí)行代碼塊,獲取至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求對應(yīng)的api信息及執(zhí)行順序,包括:
17、將動態(tài)執(zhí)行代碼塊加載到j(luò)ava虛擬機(jī)(java?virtual?machine,簡稱jvm),生成jvm代碼塊;
18、解析jvm代碼塊,得到第二解析結(jié)果;第二解析結(jié)果中至少包括至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求對應(yīng)的api信息及執(zhí)行順序。
19、在本公開的一些實(shí)施例中,通過對應(yīng)的api,按照執(zhí)行順序執(zhí)行至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求之前,本公開提供的方法還包括:
20、生成至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求對應(yīng)的全局唯一事務(wù)號;
21、通過對應(yīng)的api,按照執(zhí)行順序執(zhí)行至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求,包括:
22、按照執(zhí)行順序執(zhí)行至少一個(gè)服務(wù)請求中任一服務(wù)請求時(shí),生成當(dāng)前執(zhí)行的服務(wù)請求對應(yīng)的事務(wù)記錄;事務(wù)記錄與全局唯一事務(wù)號關(guān)聯(lián);當(dāng)至少一個(gè)服務(wù)請求中任一服務(wù)請求執(zhí)行出錯(cuò),執(zhí)行出錯(cuò)的服務(wù)請求的事務(wù)記錄標(biāo)識為出錯(cuò)狀態(tài);
23、按照執(zhí)行順序執(zhí)行至少一個(gè)服務(wù)請求中任一服務(wù)請求前,獲取當(dāng)前執(zhí)行的服務(wù)請求的前一個(gè)服務(wù)請求對應(yīng)的事務(wù)記錄,響應(yīng)于當(dāng)前執(zhí)行的服務(wù)請求的前一個(gè)服務(wù)請求對應(yīng)的事務(wù)記錄標(biāo)識為出錯(cuò)狀態(tài),回滾到前一個(gè)服務(wù)請求對應(yīng)的執(zhí)行節(jié)點(diǎn);
24、通過對應(yīng)的api,按照執(zhí)行順序執(zhí)行至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求。
25、在本公開的一些實(shí)施例中,接收客戶端發(fā)送的服務(wù)編碼之后,本公開提供的方法還包括:
26、基于服務(wù)編碼信息及預(yù)設(shè)路由規(guī)則,確定預(yù)設(shè)路由規(guī)則指示的應(yīng)用主機(jī)節(jié)點(diǎn);
27、將服務(wù)編碼傳輸至應(yīng)用主機(jī)節(jié)點(diǎn)指示的應(yīng)用主機(jī)。
28、在本公開的一些實(shí)施例中,基于服務(wù)編碼信息及預(yù)設(shè)路由規(guī)則,確定預(yù)設(shè)路由規(guī)則指示的主機(jī)節(jié)點(diǎn),包括:
29、基于服務(wù)編碼信息,確定客戶端的關(guān)鍵字信息;關(guān)鍵字信息至少包括手機(jī)號、渠道編碼、服務(wù)類型中的一種;
30、通過關(guān)鍵字自動尋址方法,基于預(yù)設(shè)路由規(guī)則,確定預(yù)設(shè)路由規(guī)則指示的主機(jī)節(jié)點(diǎn);
31、路由規(guī)則至少包括:
32、手機(jī)號所屬地區(qū)與應(yīng)用主機(jī)部署的分布關(guān)系、渠道編碼與應(yīng)用主機(jī)部署的分布關(guān)系及服務(wù)類型與應(yīng)用主機(jī)部署的分布關(guān)系。
33、本公開的第二方面實(shí)施例提出了一種服務(wù)編排裝置,該裝置包括:
34、接收單元,用于接收客戶端發(fā)送的服務(wù)編碼;服務(wù)編碼用于指示客戶端的至少一個(gè)服務(wù)請求;
35、第一獲取單元,用于基于服務(wù)編碼,獲取由至少一個(gè)服務(wù)請求組裝后的動態(tài)執(zhí)行代碼塊;動態(tài)執(zhí)行代碼塊用于指示至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求對應(yīng)的api信息及執(zhí)行順序;
36、第二獲取單元,用于基于動態(tài)執(zhí)行代碼塊,獲取至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求對應(yīng)的api信息及執(zhí)行順序;
37、執(zhí)行單元,用于通過對應(yīng)的api,按照執(zhí)行順序執(zhí)行至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求,得到執(zhí)行結(jié)果;
38、發(fā)送單元,用于向客戶端發(fā)送執(zhí)行結(jié)果。
39、本公開的第三方面實(shí)施例提出了一種電子設(shè)備,包括:
40、至少一個(gè)處理器;以及與至少一個(gè)處理器通信連接的存儲器;其中,存儲器存儲有可被至少一個(gè)處理器執(zhí)行的指令,指令被至少一個(gè)處理器執(zhí)行,以使至少一個(gè)處理器能夠執(zhí)行本公開第一方面實(shí)施例中描述的方法。
41、本公開的第四方面實(shí)施例提出了一種存儲有計(jì)算機(jī)指令的非瞬時(shí)計(jì)算機(jī)可讀存儲介質(zhì),其中,計(jì)算機(jī)指令用于使計(jì)算機(jī)執(zhí)行本公開第一方面實(shí)施例中描述的方法。
42、綜上,本公開提出了一種服務(wù)編排方法、裝置、電子設(shè)備及存儲介質(zhì),該方法包括:接收客戶端發(fā)送的服務(wù)編碼;服務(wù)編碼用于指示客戶端的至少一個(gè)服務(wù)請求;基于服務(wù)編碼,獲取由至少一個(gè)服務(wù)請求組裝后的動態(tài)執(zhí)行代碼塊;動態(tài)執(zhí)行代碼塊用于指示至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求對應(yīng)的api信息及執(zhí)行順序;基于動態(tài)執(zhí)行代碼塊,獲取至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求對應(yīng)的api信息及執(zhí)行順序;通過對應(yīng)的api,按照執(zhí)行順序執(zhí)行至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求,得到執(zhí)行結(jié)果;向客戶端發(fā)送執(zhí)行結(jié)果。
43、通過本公開提供的方案,服務(wù)端利用動態(tài)執(zhí)行代碼塊指示的每個(gè)服務(wù)請求對應(yīng)的api信息及執(zhí)行順序,通過對應(yīng)的api,按照執(zhí)行順序執(zhí)行至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求,得到執(zhí)行結(jié)果。通過上述方法,服務(wù)端能夠快速完成服務(wù)能力的組裝,提高服務(wù)的調(diào)用效率。
44、應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
1.一種服務(wù)編排方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述接收客戶端發(fā)送的服務(wù)編碼之前,所述的方法還包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于所述服務(wù)編碼,獲取由所述至少一個(gè)服務(wù)請求組裝后的動態(tài)執(zhí)行代碼塊,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于所述動態(tài)執(zhí)行代碼塊,獲取所述至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求對應(yīng)的api信息及執(zhí)行順序,包括:
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述通過對應(yīng)的api,按照執(zhí)行順序執(zhí)行所述至少一個(gè)服務(wù)請求中每個(gè)服務(wù)請求之前,所述的方法還包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述接收客戶端發(fā)送的服務(wù)編碼之后,所述的方法還包括:
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述基于所述服務(wù)編碼信息及預(yù)設(shè)路由規(guī)則,確定所述預(yù)設(shè)路由規(guī)則指示的主機(jī)節(jié)點(diǎn),包括:
8.一種服務(wù)編排裝置,其特征在于,包括:
9.一種電子設(shè)備,其特征在于,包括:
10.一種存儲有計(jì)算機(jī)指令的非瞬時(shí)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所述計(jì)算機(jī)指令用于使所述計(jì)算機(jī)執(zhí)行權(quán)利要求1至7中任一項(xiàng)所述的方法。