本申請涉及數(shù)據(jù)處理,尤其涉及一種基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法、設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、在微服務(wù)架構(gòu)中,api(application?programming?interface,應(yīng)用程序編程接口)網(wǎng)關(guān)作為統(tǒng)一的請求入口,負(fù)責(zé)處理各種與業(yè)務(wù)無關(guān)的邏輯,如路由、負(fù)載均衡、協(xié)議轉(zhuǎn)換、安全防護(hù)等,而各個微服務(wù)則專注于各自業(yè)務(wù)邏輯的實(shí)現(xiàn)。為了確保整個微服務(wù)架構(gòu)的穩(wěn)定運(yùn)行和數(shù)據(jù)一致性,需要對多個api網(wǎng)關(guān)進(jìn)行數(shù)據(jù)同步,以實(shí)現(xiàn)服務(wù)列表、api列表、相關(guān)策略等信息的統(tǒng)一管理和更新。
2、目前,api網(wǎng)關(guān)數(shù)據(jù)同步技術(shù)通常采用硬編碼的方式,例如,若一個多元網(wǎng)關(guān)平臺管理多個api網(wǎng)關(guān),當(dāng)多元網(wǎng)關(guān)平臺需要同步其管理的api網(wǎng)關(guān)的數(shù)據(jù)時,會在數(shù)據(jù)同步模塊內(nèi)提前編寫好代碼,定義好相關(guān)的數(shù)據(jù)處理邏輯。當(dāng)多元網(wǎng)關(guān)平臺需要進(jìn)行網(wǎng)關(guān)數(shù)據(jù)同步時,會先接收數(shù)據(jù),然后按照提前定義好的數(shù)據(jù)處理邏輯進(jìn)行數(shù)據(jù)同步處理。然而上述硬編碼的同步方式難以適應(yīng)不同網(wǎng)關(guān)數(shù)據(jù)的多樣化需求,因為不同類型的網(wǎng)關(guān)可能會有不同的數(shù)據(jù)格式和同步接口,數(shù)據(jù)同步模塊內(nèi)提前定義好的數(shù)據(jù)處理邏輯無法滿足不同網(wǎng)關(guān)的多樣化需求,網(wǎng)關(guān)數(shù)據(jù)同步的靈活性較差。
3、上述內(nèi)容僅用于輔助理解本申請的技術(shù)方案,并不代表承認(rèn)上述內(nèi)容是現(xiàn)有技術(shù)。
技術(shù)實(shí)現(xiàn)思路
1、本申請的主要目的在于提供一種基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法、設(shè)備及存儲介質(zhì),旨在解決網(wǎng)關(guān)數(shù)據(jù)同步的靈活性差的技術(shù)問題。
2、為實(shí)現(xiàn)上述目的,本申請?zhí)岢鲆环N基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法,所述方法包括:
3、當(dāng)網(wǎng)關(guān)的定時同步任務(wù)鏈定時觸發(fā)數(shù)據(jù)拉取同步任務(wù)時,獲取所述網(wǎng)關(guān)的類型、版本號和端口地址;
4、基于所述網(wǎng)關(guān)的類型和版本號,于數(shù)據(jù)同步策略類中的配置參數(shù)匹配,確定與所述網(wǎng)關(guān)對應(yīng)的拉取同步策略類;
5、基于所述拉取同步策略類以及所述網(wǎng)關(guān)的類型、版本號和端口地址,調(diào)用同步接口從所述網(wǎng)關(guān)中拉取數(shù)據(jù),以執(zhí)行所述數(shù)據(jù)拉取同步任務(wù)。
6、在一實(shí)施例中,所述當(dāng)網(wǎng)關(guān)的定時同步任務(wù)鏈定時觸發(fā)數(shù)據(jù)拉取同步任務(wù)時,獲取所述網(wǎng)關(guān)的類型、版本號和端口地址的步驟之前,還包括:
7、響應(yīng)于用戶輸入的新增網(wǎng)關(guān)指令,獲取用戶輸入的新增網(wǎng)關(guān)的類型、版本號和端口地址;
8、基于所述用戶輸入的新增網(wǎng)關(guān)的類型、版本號和端口地址,根據(jù)預(yù)設(shè)規(guī)則創(chuàng)建新增網(wǎng)關(guān)的定時同步任務(wù)鏈,并控制所述新增網(wǎng)關(guān)的定時同步任務(wù)鏈觸發(fā)數(shù)據(jù)拉取同步任務(wù)。
9、在一實(shí)施例中,所述基于所述拉取同步策略類以及所述網(wǎng)關(guān)的類型、版本號和端口地址,調(diào)用同步接口從所述網(wǎng)關(guān)中拉取數(shù)據(jù)的步驟包括:
10、通過所述拉取同步策略類讀取網(wǎng)關(guān)適配器sdk中的拉取實(shí)現(xiàn)類列表;
11、所述拉取同步策略類基于所述網(wǎng)關(guān)的類型和版本號,于所述拉取實(shí)現(xiàn)類列表中匹配,確定目標(biāo)拉取實(shí)現(xiàn)類;
12、基于所述目標(biāo)拉取實(shí)現(xiàn)類和所述網(wǎng)關(guān)的端口地址,調(diào)用同步接口從所述網(wǎng)關(guān)中拉取數(shù)據(jù)。
13、在一實(shí)施例中,所述當(dāng)網(wǎng)關(guān)的定時同步任務(wù)鏈定時觸發(fā)數(shù)據(jù)拉取同步任務(wù)時,獲取所述網(wǎng)關(guān)的類型、版本號和端口地址的步驟之前,還包括:
14、定義服務(wù)提供者接口,所述服務(wù)提供者接口包括數(shù)據(jù)拉取接口和數(shù)據(jù)推送接口,其中所述數(shù)據(jù)拉取接口用于聲明不同網(wǎng)關(guān)服務(wù)商需要實(shí)現(xiàn)的同步數(shù)據(jù)拉取方法,所述數(shù)據(jù)推送接口用于聲明不同網(wǎng)關(guān)服務(wù)商需要實(shí)現(xiàn)的同步數(shù)據(jù)推送方法;
15、接收網(wǎng)關(guān)服務(wù)商基于所述服務(wù)提供者接口發(fā)送的所述網(wǎng)關(guān)適配器sdk,所述網(wǎng)關(guān)適配器sdk中包括實(shí)現(xiàn)類,其中,所述實(shí)現(xiàn)類包括拉取實(shí)現(xiàn)類和推送實(shí)現(xiàn)類,所述拉取實(shí)現(xiàn)類用于實(shí)現(xiàn)所述同步數(shù)據(jù)拉取方法,所述推送實(shí)現(xiàn)類用于實(shí)現(xiàn)所述同步數(shù)據(jù)推送方法。
16、在一實(shí)施例中,所述基于所述目標(biāo)拉取實(shí)現(xiàn)類和所述網(wǎng)關(guān)的端口地址,調(diào)用同步接口從所述網(wǎng)關(guān)中拉取數(shù)據(jù)的步驟包括:
17、基于所述網(wǎng)關(guān)的端口地址,確定所述網(wǎng)關(guān)對應(yīng)的同步接口;
18、基于所述目標(biāo)拉取實(shí)現(xiàn)類對應(yīng)的同步數(shù)據(jù)拉取方法,通過所述同步接口從所述網(wǎng)關(guān)拉取數(shù)據(jù)。
19、在一實(shí)施例中,所述方法還包括:
20、接收用戶輸入的所述網(wǎng)關(guān)的新增配置數(shù)據(jù),生成實(shí)時推送同步任務(wù);
21、基于所述網(wǎng)關(guān)的類型和版本號,于數(shù)據(jù)同步策略類中的配置參數(shù)匹配,確定與所述實(shí)時推送同步任務(wù)對應(yīng)的推送同步策略類;
22、通過所述推送同步策略類讀取網(wǎng)關(guān)適配器sdk中的推送實(shí)現(xiàn)類列表;
23、所述推送同步策略類基于所述網(wǎng)關(guān)的類型和版本號,于所述推送實(shí)現(xiàn)類列表中匹配,確定目標(biāo)推送實(shí)現(xiàn)類;
24、基于所述目標(biāo)推送實(shí)現(xiàn)類對應(yīng)的同步數(shù)據(jù)推送方法,調(diào)用所述同步接口將所述新增配置數(shù)據(jù)推送至所述網(wǎng)關(guān),以執(zhí)行所述實(shí)時推送同步任務(wù)。
25、在一實(shí)施例中,所述定時同步任務(wù)鏈包括至少一個所述數(shù)據(jù)拉取同步任務(wù),所述定時同步任務(wù)鏈保存于任務(wù)引擎中,所述方法還包括:
26、接收任務(wù)引擎控制臺的控制信號,所述控制信號用于觸發(fā)執(zhí)行所述網(wǎng)關(guān)的所述定時同步任務(wù)鏈中,任一個或多個目標(biāo)數(shù)據(jù)拉取同步任務(wù);
27、基于所述控制信號,控制網(wǎng)關(guān)的定時同步任務(wù)鏈觸發(fā)所述目標(biāo)數(shù)據(jù)拉取同步任務(wù)。
28、在一實(shí)施例中,所述基于所述控制信號,控制網(wǎng)關(guān)的定時同步任務(wù)鏈觸發(fā)所述目標(biāo)數(shù)據(jù)拉取同步任務(wù)的步驟之后,還包括:
29、當(dāng)所述目標(biāo)數(shù)據(jù)拉取同步任務(wù)執(zhí)行完成后,執(zhí)行下游數(shù)據(jù)拉取同步任務(wù),所述下游數(shù)據(jù)拉取同步任務(wù)位于所述目標(biāo)數(shù)據(jù)拉取同步任務(wù)之后。
30、此外,為實(shí)現(xiàn)上述目的,本申請還提出一種基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步設(shè)備,所述設(shè)備包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運(yùn)行的計算機(jī)程序,所述計算機(jī)程序配置為實(shí)現(xiàn)如上文所述的基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法的步驟。
31、此外,為實(shí)現(xiàn)上述目的,本申請還提出一種存儲介質(zhì),所述存儲介質(zhì)為計算機(jī)可讀存儲介質(zhì),所述存儲介質(zhì)上存儲有計算機(jī)程序,所述計算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)如上文所述的基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法的步驟。
32、本申請?zhí)峁┝艘环N基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法,當(dāng)網(wǎng)關(guān)的定時同步任務(wù)鏈定時觸發(fā)數(shù)據(jù)拉取同步任務(wù)時,獲取網(wǎng)關(guān)的類型、版本號和端口地址,基于網(wǎng)關(guān)的類型和版本號,于數(shù)據(jù)同步策略類中的配置參數(shù)匹配,確定與網(wǎng)關(guān)對應(yīng)的拉取同步策略類,然后,基于拉取同步策略類以及網(wǎng)關(guān)的類型、版本號和端口地址,調(diào)用同步接口從網(wǎng)關(guān)中拉取數(shù)據(jù),以執(zhí)行數(shù)據(jù)拉取同步任務(wù)。上述方法在多元網(wǎng)關(guān)平臺需要執(zhí)行數(shù)據(jù)拉取同步時,能夠根據(jù)網(wǎng)關(guān)的類型和版本號,在數(shù)據(jù)同步策略類中動態(tài)的匹配拉取同步策略類,當(dāng)多元網(wǎng)關(guān)平臺內(nèi)的網(wǎng)關(guān)類型或版本發(fā)生變化時,多元網(wǎng)關(guān)平臺能夠選擇不同的拉取同步策略類來適應(yīng)網(wǎng)關(guān)的變化,提高了網(wǎng)關(guān)數(shù)據(jù)同步的靈活性。
1.一種基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法,其特征在于,所述方法包括:
2.如權(quán)利要求1所述的基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法,其特征在于,所述當(dāng)網(wǎng)關(guān)的定時同步任務(wù)鏈定時觸發(fā)數(shù)據(jù)拉取同步任務(wù)時,獲取所述網(wǎng)關(guān)的類型、版本號和端口地址的步驟之前,還包括:
3.如權(quán)利要求1所述的基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法,其特征在于,所述基于所述拉取同步策略類以及所述網(wǎng)關(guān)的類型、版本號和端口地址,調(diào)用同步接口從所述網(wǎng)關(guān)中拉取數(shù)據(jù)的步驟包括:
4.如權(quán)利要求3所述的基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法,其特征在于,所述當(dāng)網(wǎng)關(guān)的定時同步任務(wù)鏈定時觸發(fā)數(shù)據(jù)拉取同步任務(wù)時,獲取所述網(wǎng)關(guān)的類型、版本號和端口地址的步驟之前,還包括:
5.如權(quán)利要求4所述的基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法,其特征在于,所述基于所述目標(biāo)拉取實(shí)現(xiàn)類和所述網(wǎng)關(guān)的端口地址,調(diào)用同步接口從所述網(wǎng)關(guān)中拉取數(shù)據(jù)的步驟包括:
6.如權(quán)利要求4所述的基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法,其特征在于,所述方法還包括:
7.如權(quán)利要求1所述的基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法,其特征在于,所述定時同步任務(wù)鏈包括至少一個所述數(shù)據(jù)拉取同步任務(wù),所述定時同步任務(wù)鏈保存于任務(wù)引擎中,所述方法還包括:
8.如權(quán)利要求7所述的基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法,其特征在于,所述基于所述控制信號,控制網(wǎng)關(guān)的定時同步任務(wù)鏈觸發(fā)所述目標(biāo)數(shù)據(jù)拉取同步任務(wù)的步驟之后,還包括:
9.一種基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步設(shè)備,其特征在于,所述設(shè)備包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運(yùn)行的計算機(jī)程序,所述計算機(jī)程序配置為實(shí)現(xiàn)如權(quán)利要求1至8中任一項所述的基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法的步驟。
10.一種存儲介質(zhì),其特征在于,所述存儲介質(zhì)為計算機(jī)可讀存儲介質(zhì),所述存儲介質(zhì)上存儲有計算機(jī)程序,所述計算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)如權(quán)利要求1至8中任一項所述的基于策略模式和任務(wù)鏈的api網(wǎng)關(guān)數(shù)據(jù)同步方法的步驟。