本技術(shù)涉及大數(shù)據(jù),尤其涉及一種數(shù)據(jù)分發(fā)方法、數(shù)據(jù)接收方法及裝置。
背景技術(shù):
1、在服務(wù)端/客戶端(client/server,c/s)架構(gòu)模式下,客戶端通常需要發(fā)起交易從服務(wù)端獲取所需的數(shù)據(jù)(如配置數(shù)據(jù)、業(yè)務(wù)數(shù)據(jù)等),目前主要采用多次交易、分頁獲取數(shù)據(jù)的方式與服務(wù)端同步數(shù)據(jù)。
2、而隨著云原生技術(shù)的推廣應(yīng)用,客戶端數(shù)量呈現(xiàn)爆發(fā)式增長。在客戶端初次啟動(dòng)時(shí),通常需要從服務(wù)端拉取大量業(yè)務(wù)數(shù)據(jù),采用多次交易、分頁獲取數(shù)據(jù)等方式一次拉取的數(shù)據(jù)量較少,交易效率低下;且在容器化的場景下,存在數(shù)千臺(tái)甚至數(shù)萬臺(tái)客戶端同時(shí)啟動(dòng)的可能,而客戶端需要等待多次數(shù)據(jù)拉取完成,導(dǎo)致應(yīng)用的啟動(dòng)時(shí)間顯著增加,這對(duì)于用戶體驗(yàn)來說是一個(gè)顯著的負(fù)面影響,特別是在需要快速響應(yīng)的應(yīng)用場景中。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供一種數(shù)據(jù)分發(fā)方法、數(shù)據(jù)接收方法及裝置,以至少解決上述技術(shù)問題之一。
2、第一方面,本技術(shù)提供一種數(shù)據(jù)分發(fā)方法,應(yīng)用于服務(wù)端,所述方法包括:
3、根據(jù)預(yù)置的數(shù)據(jù)預(yù)處理定時(shí)任務(wù),從數(shù)據(jù)庫中讀取至少一個(gè)客戶端所需的數(shù)據(jù),并對(duì)每個(gè)客戶端所需的數(shù)據(jù)進(jìn)行預(yù)處理,得到預(yù)處理后每個(gè)客戶端的處理數(shù)據(jù);其中,所述數(shù)據(jù)預(yù)處理定時(shí)任務(wù)用于指示所述服務(wù)端定時(shí)提取數(shù)據(jù)并進(jìn)行預(yù)處理,所述數(shù)據(jù)包括業(yè)務(wù)數(shù)據(jù)和/或配置數(shù)據(jù);
4、根據(jù)預(yù)設(shè)加密算法,對(duì)每個(gè)客戶端的處理數(shù)據(jù)進(jìn)行加密,得到每個(gè)客戶端的加密數(shù)據(jù),并將加密數(shù)據(jù)緩存在本地緩存空間中;
5、響應(yīng)于任意一個(gè)或多個(gè)客戶端發(fā)起的數(shù)據(jù)下載請(qǐng)求,從所述本地緩存空間中提取對(duì)應(yīng)的加密數(shù)據(jù),并將所述加密數(shù)據(jù)分發(fā)至所述客戶端。
6、在一種實(shí)施方式中,對(duì)每個(gè)客戶端所需的數(shù)據(jù)進(jìn)行預(yù)處理,得到預(yù)處理后每個(gè)客戶端的處理數(shù)據(jù),包括:
7、針對(duì)每個(gè)客戶端所需的數(shù)據(jù),根據(jù)數(shù)據(jù)版本特征,對(duì)所述數(shù)據(jù)進(jìn)行編排處理,得到預(yù)處理后每個(gè)客戶端的處理數(shù)據(jù);
8、其中,所述數(shù)據(jù)版本特征是所述服務(wù)器從所述數(shù)據(jù)庫中提取對(duì)應(yīng)數(shù)據(jù)時(shí)根據(jù)數(shù)據(jù)的提取批次確定得到。
9、在一種實(shí)施方式中,所述預(yù)設(shè)加密算法包括國密算法sm2和國密算法sm4;所述方法還包括:
10、針對(duì)每個(gè)客戶端的處理數(shù)據(jù),隨機(jī)生成針對(duì)所述處理數(shù)據(jù)的sm4加密秘鑰;
11、所述根據(jù)預(yù)設(shè)加密算法,對(duì)每個(gè)客戶端的處理數(shù)據(jù)進(jìn)行加密,得到每個(gè)客戶端的加密數(shù)據(jù),包括:
12、根據(jù)所述sm4加密秘鑰,對(duì)每個(gè)客戶端的處理數(shù)據(jù)進(jìn)行加密,得到數(shù)據(jù)密文;
13、根據(jù)預(yù)獲取的所述客戶端的sm2公鑰加密所述sm4加密秘鑰,得到密鑰密文;
14、將所述數(shù)據(jù)密文和所述密鑰密文組裝成數(shù)字信封文件,得到所述加密數(shù)據(jù)。
15、在一種實(shí)施方式中,所述數(shù)據(jù)下載請(qǐng)求攜帶所述客戶端的sm2私鑰簽名;
16、所述響應(yīng)于任意一個(gè)或多個(gè)客戶端發(fā)起的數(shù)據(jù)下載請(qǐng)求,從所述本地緩存空間中提取對(duì)應(yīng)的加密數(shù)據(jù),包括:
17、響應(yīng)于任意一個(gè)或多個(gè)客戶端發(fā)起的數(shù)據(jù)下載請(qǐng)求,根據(jù)所述sm2私鑰簽名驗(yàn)證所述客戶端的身份信息,并在所述客戶端的身份驗(yàn)證通過時(shí),從所述本地緩存空間中提取對(duì)應(yīng)的加密數(shù)據(jù)。
18、在一種實(shí)施方式中,所述響應(yīng)于任意一個(gè)或多個(gè)客戶端發(fā)起的數(shù)據(jù)下載請(qǐng)求,從所述本地緩存空間中提取對(duì)應(yīng)的加密數(shù)據(jù),并將所述加密數(shù)據(jù)分發(fā)至所述客戶端,包括:
19、在響應(yīng)于多個(gè)客戶端發(fā)起的數(shù)據(jù)下載請(qǐng)求時(shí),若所述數(shù)據(jù)下載請(qǐng)求中的多個(gè)客戶端隸屬于同一客戶端集群,則從所述本地緩存空間中提取所述多個(gè)客戶端中任一客戶端對(duì)應(yīng)的加密數(shù)據(jù);
20、將所述加密數(shù)據(jù)同步分發(fā)至所述多個(gè)客戶端中。
21、在一種實(shí)施方式中,所述方法還包括:
22、基于國密算法sm3對(duì)所述加密數(shù)據(jù)進(jìn)行處理,以生成關(guān)于所述加密數(shù)據(jù)的雜湊值,所述雜湊值用于指示加密數(shù)據(jù)在傳輸過程中的一致性;
23、將所述加密數(shù)據(jù)和所述雜湊值進(jìn)行封裝,得到封裝后的加密數(shù)據(jù);
24、將所述加密數(shù)據(jù)分發(fā)至所述客戶端中,包括:將所述封裝后的加密數(shù)據(jù)分發(fā)至所述客戶端中。
25、第二方面,本技術(shù)提供一種數(shù)據(jù)接收方法,應(yīng)用于客戶端,所述方法包括:
26、向服務(wù)端發(fā)送數(shù)據(jù)下載請(qǐng)求,所述數(shù)據(jù)下載請(qǐng)求攜帶所述客戶端的國密算法sm2私鑰簽名,所述sm2私鑰簽名用于指示所述服務(wù)端驗(yàn)證所述客戶端的身份;
27、接收所述服務(wù)器響應(yīng)于所述數(shù)據(jù)下載請(qǐng)求,分發(fā)的關(guān)于所述客戶端的加密數(shù)據(jù);
28、對(duì)所述加密數(shù)據(jù)進(jìn)行解密處理,得到關(guān)于所述客戶端的處理數(shù)據(jù),并根據(jù)所述處理數(shù)據(jù)進(jìn)行相關(guān)業(yè)務(wù)處理。
29、在一種實(shí)施方式中,所述加密數(shù)據(jù)包括數(shù)據(jù)密文和秘鑰密文,所述數(shù)據(jù)密文基于國密算法sm4加密秘鑰對(duì)處理數(shù)據(jù)進(jìn)行加密得到,所述秘鑰密文基于sm2公鑰對(duì)國密算法sm4加密秘鑰進(jìn)行加密得到;
30、所述對(duì)所述加密數(shù)據(jù)進(jìn)行解密處理,得到關(guān)于所述客戶端的處理數(shù)據(jù),包括:
31、基于預(yù)存儲(chǔ)的sm2私鑰對(duì)所述秘鑰密文進(jìn)行解密,得到所述解密秘鑰;
32、根據(jù)所述sm4加密秘鑰對(duì)所述數(shù)據(jù)密文進(jìn)行解密,得到關(guān)于所述客戶端的處理數(shù)據(jù)。
33、第三方面,本技術(shù)提供一種數(shù)據(jù)分發(fā)裝置,應(yīng)用于服務(wù)端,所述裝置包括:
34、讀取及處理模塊,其設(shè)置為根據(jù)預(yù)置的數(shù)據(jù)預(yù)處理定時(shí)任務(wù),從數(shù)據(jù)庫中讀取至少一個(gè)客戶端所需的數(shù)據(jù),并對(duì)每個(gè)客戶端所需的數(shù)據(jù)進(jìn)行預(yù)處理,得到預(yù)處理后每個(gè)客戶端的處理數(shù)據(jù);其中,所述數(shù)據(jù)預(yù)處理定時(shí)任務(wù)用于指示所述服務(wù)端定時(shí)提取數(shù)據(jù)并進(jìn)行預(yù)處理,所述數(shù)據(jù)包括業(yè)務(wù)數(shù)據(jù)和/或配置數(shù)據(jù);
35、加密模塊,其設(shè)置為根據(jù)預(yù)設(shè)加密算法,對(duì)每個(gè)客戶端的處理數(shù)據(jù)進(jìn)行加密,得到每個(gè)客戶端的加密數(shù)據(jù),并將加密數(shù)據(jù)緩存在本地緩存空間中;
36、提取及分發(fā)模塊,其設(shè)置為響應(yīng)于任意一個(gè)或多個(gè)客戶端發(fā)起的數(shù)據(jù)下載請(qǐng)求,從所述本地緩存空間中提取對(duì)應(yīng)的加密數(shù)據(jù),并將所述加密數(shù)據(jù)分發(fā)至所述客戶端。
37、在一種實(shí)施方式中,所述讀取及處理模塊,包括:
38、編排單元,其設(shè)置為針對(duì)每個(gè)客戶端所需的數(shù)據(jù),根據(jù)數(shù)據(jù)版本特征,對(duì)所述數(shù)據(jù)進(jìn)行編排處理,得到預(yù)處理后每個(gè)客戶端的處理數(shù)據(jù);
39、其中,所述數(shù)據(jù)版本特征是所述服務(wù)器從所述數(shù)據(jù)庫中提取對(duì)應(yīng)數(shù)據(jù)時(shí)根據(jù)數(shù)據(jù)的提取批次確定得到。
40、在一種實(shí)施方式中,所述預(yù)設(shè)加密算法包括國密算法sm2和國密算法sm4;所述裝置還包括:
41、秘鑰生成模塊,其設(shè)置為針對(duì)每個(gè)客戶端的處理數(shù)據(jù),隨機(jī)生成針對(duì)所述處理數(shù)據(jù)的sm4加密秘鑰;
42、所述加密模塊,包括:
43、數(shù)據(jù)加密單元,其設(shè)置為根據(jù)所述sm4加密秘鑰,對(duì)每個(gè)客戶端的處理數(shù)據(jù)進(jìn)行加密,得到數(shù)據(jù)密文;
44、秘鑰加密單元,其設(shè)置為根據(jù)預(yù)獲取的所述客戶端的sm2公鑰加密所述sm4加密秘鑰,得到密鑰密文;
45、加密數(shù)據(jù)生成單元,其設(shè)置為將所述數(shù)據(jù)密文和所述密鑰密文組裝成數(shù)字信封文件,得到所述加密數(shù)據(jù)。
46、在一種實(shí)施方式中,所述數(shù)據(jù)下載請(qǐng)求攜帶所述客戶端的sm2私鑰簽名;
47、所述提取及分發(fā)模塊,包括:
48、數(shù)據(jù)提取單元,其設(shè)置為響應(yīng)于任意一個(gè)或多個(gè)客戶端發(fā)起的數(shù)據(jù)下載請(qǐng)求,根據(jù)所述sm2私鑰簽名驗(yàn)證所述客戶端的身份信息,并在所述客戶端的身份驗(yàn)證通過時(shí),從所述本地緩存空間中提取對(duì)應(yīng)的加密數(shù)據(jù)。
49、在一種實(shí)施方式中,所述提取及分發(fā)模塊,具體設(shè)置為:
50、在響應(yīng)于多個(gè)客戶端發(fā)起的數(shù)據(jù)下載請(qǐng)求時(shí),若所述數(shù)據(jù)下載請(qǐng)求中的多個(gè)客戶端隸屬于同一客戶端集群,則從所述本地緩存空間中提取所述多個(gè)客戶端中任一客戶端對(duì)應(yīng)的加密數(shù)據(jù);
51、將所述加密數(shù)據(jù)同步分發(fā)至所述多個(gè)客戶端中。
52、在一種實(shí)施方式中,所述裝置還包括:
53、雜湊值生成模塊,其設(shè)置為基于國密算法sm3對(duì)所述加密數(shù)據(jù)進(jìn)行處理,以生成關(guān)于所述加密數(shù)據(jù)的雜湊值,所述雜湊值用于指示加密數(shù)據(jù)在傳輸過程中的一致性;
54、封裝模塊,其設(shè)置為將所述加密數(shù)據(jù)和所述雜湊值進(jìn)行封裝,得到封裝后的加密數(shù)據(jù);
55、所述提取及分發(fā)模塊,包括:數(shù)據(jù)分發(fā)單元,其設(shè)置為將所述封裝后的加密數(shù)據(jù)分發(fā)至所述客戶端中。
56、第四方面,本技術(shù)提供一種數(shù)據(jù)接收裝置,應(yīng)用于客戶端,所述裝置包括:
57、請(qǐng)求模塊,其設(shè)置為向服務(wù)端發(fā)送數(shù)據(jù)下載請(qǐng)求,所述數(shù)據(jù)下載請(qǐng)求攜帶所述客戶端的國密算法sm2私鑰簽名,所述sm2私鑰簽名用于指示所述服務(wù)端驗(yàn)證所述客戶端的身份;
58、接收模塊,其設(shè)置為接收所述服務(wù)器響應(yīng)于所述數(shù)據(jù)下載請(qǐng)求,分發(fā)的關(guān)于所述客戶端的加密數(shù)據(jù);
59、解密模塊,其設(shè)置為對(duì)所述加密數(shù)據(jù)進(jìn)行解密處理,得到關(guān)于所述客戶端的處理數(shù)據(jù),并根據(jù)所述處理數(shù)據(jù)進(jìn)行相關(guān)業(yè)務(wù)處理。
60、在一種實(shí)施方式中,所述加密數(shù)據(jù)包括數(shù)據(jù)密文和秘鑰密文,所述數(shù)據(jù)密文基于國密算法sm4加密秘鑰對(duì)處理數(shù)據(jù)進(jìn)行加密得到,所述秘鑰密文基于sm2公鑰對(duì)國密算法sm4加密秘鑰進(jìn)行加密得到;
61、所述解密模塊,具體設(shè)置為:基于預(yù)存儲(chǔ)的sm2私鑰對(duì)所述秘鑰密文進(jìn)行解密,得到所述解密秘鑰;根據(jù)所述sm4加密秘鑰對(duì)所述數(shù)據(jù)密文進(jìn)行解密,得到關(guān)于所述客戶端的處理數(shù)據(jù)。
62、第五方面,本技術(shù)提供一種服務(wù)端,包括:存儲(chǔ)器和處理器;
63、所述存儲(chǔ)器存儲(chǔ)計(jì)算機(jī)執(zhí)行指令;
64、所述處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,使得所述服務(wù)端執(zhí)行上述第一方面任一項(xiàng)提供的數(shù)據(jù)分發(fā)方法。
65、第六方面,本技術(shù)一種客戶端,包括:存儲(chǔ)器和處理器;
66、所述存儲(chǔ)器存儲(chǔ)計(jì)算機(jī)執(zhí)行指令;
67、所述處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,使得所述客戶端執(zhí)行上述第二方面任一項(xiàng)提供的數(shù)據(jù)接收方法。
68、第七方面,本技術(shù)提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)執(zhí)行指令,所述計(jì)算機(jī)執(zhí)行指令被處理器執(zhí)行時(shí)用于實(shí)現(xiàn)如上述第一方面任一項(xiàng)提供的數(shù)據(jù)分發(fā)方法,或者用于實(shí)現(xiàn)如上述第二方面任一項(xiàng)提供的數(shù)據(jù)接收方法。
69、第八方面,本技術(shù)提供一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序代碼,當(dāng)所述計(jì)算機(jī)程序代碼在計(jì)算機(jī)上運(yùn)行時(shí),使得計(jì)算機(jī)執(zhí)行如上述第一方面任一項(xiàng)提供的數(shù)據(jù)分發(fā)方法,或者用于實(shí)現(xiàn)如上述第二方面任一項(xiàng)提供的數(shù)據(jù)接收方法。
70、本技術(shù)提供的數(shù)據(jù)分發(fā)方法、數(shù)據(jù)接收方法及裝置,通過在服務(wù)端根據(jù)預(yù)置的數(shù)據(jù)預(yù)處理定時(shí)任務(wù),從數(shù)據(jù)庫中讀取至少一個(gè)客戶端所需的數(shù)據(jù)(包括業(yè)務(wù)數(shù)據(jù)和/或配置數(shù)據(jù)),并對(duì)每個(gè)客戶端所需的數(shù)據(jù)進(jìn)行預(yù)處理,得到預(yù)處理后每個(gè)客戶端的處理數(shù)據(jù),該數(shù)據(jù)預(yù)處理定時(shí)任務(wù)用于指示服務(wù)端定時(shí)提取數(shù)據(jù)并進(jìn)行預(yù)處理,并根據(jù)預(yù)設(shè)加密算法,對(duì)每個(gè)客戶端的處理數(shù)據(jù)進(jìn)行加密,得到每個(gè)客戶端的加密數(shù)據(jù),并將加密數(shù)據(jù)緩存在本地緩存空間中,響應(yīng)于任意一個(gè)或多個(gè)客戶端發(fā)起的數(shù)據(jù)下載請(qǐng)求,從本地緩存空間中提取對(duì)應(yīng)的加密數(shù)據(jù),并將加密數(shù)據(jù)分發(fā)至客戶端。此過程中,服務(wù)端預(yù)先為客戶端查詢并處理對(duì)應(yīng)的數(shù)據(jù)文件,客戶端可通過一次交易就將大量數(shù)據(jù)下拉裝配,極大地節(jié)省了客戶端正式啟動(dòng)時(shí)所需的交易次數(shù)和數(shù)據(jù)的就緒時(shí)間,并且通過數(shù)據(jù)加密的形式,可以保證數(shù)據(jù)在進(jìn)行多客戶端之間分發(fā)過程中的數(shù)據(jù)安全性和完整性。如此,便能有效解決客戶端從服務(wù)端多次拉取數(shù)據(jù),交易效率低下或者應(yīng)用響應(yīng)慢的問題。