本技術(shù)涉及應(yīng)用配置,具體涉及一種應(yīng)用配置方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、當(dāng)前,隨著應(yīng)用規(guī)模逐步擴(kuò)大,容器化技術(shù)正在快速發(fā)展和落地,應(yīng)用配置集中越來(lái)越重要。相關(guān)技術(shù)中,在應(yīng)用配置集中管理過(guò)程中,應(yīng)用的客戶端需要檢測(cè)服務(wù)端的配置文件,以確定配置文件是否發(fā)生變更,進(jìn)而在變更時(shí)更新本地配置。
2、但是,服務(wù)端針對(duì)應(yīng)用可能設(shè)置有較多的配置文件,客戶端需要逐一檢測(cè)服務(wù)端的多個(gè)配置文件是否發(fā)生變更,導(dǎo)致檢測(cè)過(guò)程耗費(fèi)較多的網(wǎng)絡(luò)資源,并且客戶端在檢測(cè)過(guò)程中需要與服務(wù)端建立網(wǎng)絡(luò)連接,也會(huì)給服務(wù)端造成較大的網(wǎng)絡(luò)負(fù)擔(dān)。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施例提供一種應(yīng)用配置方法、裝置、設(shè)備及介質(zhì),用于降低客戶端檢測(cè)配置文件所耗費(fèi)的網(wǎng)絡(luò)資源,并減輕服務(wù)端的網(wǎng)絡(luò)負(fù)擔(dān)。
2、第一方面,本技術(shù)實(shí)施例提供一種應(yīng)用配置方法,應(yīng)用于目標(biāo)應(yīng)用的客戶端,所述方法包括:
3、檢測(cè)服務(wù)端的所述目標(biāo)應(yīng)用的全局應(yīng)用配置哈希值是否發(fā)生變更;其中,所述全局應(yīng)用配置哈希值是:基于第一全局應(yīng)用配置哈希表中的各個(gè)配置文件哈希值生成的,所述第一全局應(yīng)用配置哈希表是以所述目標(biāo)應(yīng)用的全局唯一標(biāo)識(shí)為主鍵生成的;
4、當(dāng)確定所述全局應(yīng)用配置哈希值發(fā)生變更時(shí),從所述服務(wù)端獲取所述第一全局應(yīng)用配置哈希表;
5、將本地保存的第二全局應(yīng)用配置哈希表與獲取的所述第一全局應(yīng)用配置哈希表進(jìn)行比對(duì),確定所述第一全局應(yīng)用配置哈希表中發(fā)生變更的配置文件哈希值;
6、基于發(fā)生變更的配置文件哈希值對(duì)應(yīng)的配置文件標(biāo)識(shí),從所述服務(wù)端獲取發(fā)生變更的配置文件,并根據(jù)發(fā)生變更的配置文件更新本地配置信息。
7、本技術(shù)實(shí)施例中,客戶端在檢測(cè)到服務(wù)端的目標(biāo)應(yīng)用的全局應(yīng)用配置哈希值發(fā)生變更時(shí),從服務(wù)端獲取第一全局應(yīng)用配置哈希表,將本地保存的第二全局應(yīng)用配置哈希表與第一全局應(yīng)用配置哈希表進(jìn)行比對(duì),確定第一全局應(yīng)用配置哈希表中發(fā)生變更的配置文件哈希值,基于發(fā)生變更的配置文件哈希值對(duì)應(yīng)的配置文件標(biāo)識(shí),從服務(wù)端獲取發(fā)生變更的配置文件,以更新本地配置信息。這樣,客戶端只需要檢測(cè)全局應(yīng)用配置哈希值即可確定服務(wù)端是否存在發(fā)生變更的配置文件,而無(wú)需針對(duì)服務(wù)端的多個(gè)配置文件分別進(jìn)行檢測(cè),可以降低客戶端檢測(cè)配置文件所耗費(fèi)的網(wǎng)絡(luò)資源,并減輕服務(wù)端的網(wǎng)絡(luò)負(fù)擔(dān)。
8、在一種可能的實(shí)施例中,所述服務(wù)端保存有所述目標(biāo)應(yīng)用的多個(gè)版本的全局應(yīng)用配置哈希值,每個(gè)版本的全局應(yīng)用配置哈希值是:基于相應(yīng)版本的第一全局應(yīng)用配置哈希表中的配置文件哈希值生成的,所述相應(yīng)版本的第一全局應(yīng)用配置哈希表是:以所述全局唯一標(biāo)識(shí)以及所述相應(yīng)版本為主鍵生成的;
9、所述檢測(cè)服務(wù)端的所述目標(biāo)應(yīng)用的全局應(yīng)用配置哈希值是否發(fā)生變更,包括:
10、當(dāng)安裝的所述目標(biāo)應(yīng)用為所述多個(gè)版本中的目標(biāo)版本時(shí),檢測(cè)所述服務(wù)端的所述目標(biāo)版本的全局應(yīng)用配置哈希值是否發(fā)生變更;其中,所述目標(biāo)版本為默認(rèn)版本或者指定版本。
11、在一種可能的實(shí)施例中,所述當(dāng)確定所述全局應(yīng)用配置哈希值發(fā)生變更時(shí),從所述服務(wù)端獲取所述第一全局應(yīng)用配置哈希表,包括:
12、當(dāng)確定所述目標(biāo)版本的全局應(yīng)用配置哈希值發(fā)生變更時(shí),向所述服務(wù)端發(fā)送所述目標(biāo)版本的第一全局應(yīng)用配置哈希表的獲取請(qǐng)求;
13、接收所述服務(wù)端返回的所述目標(biāo)版本的第一全局應(yīng)用配置哈希表。
14、在一種可能的實(shí)施例中,所述第一全局應(yīng)用配置哈希表包括各個(gè)配置文件標(biāo)識(shí)以及對(duì)應(yīng)的第一配置文件哈希值,所述第二全局應(yīng)用配置哈希表包括各個(gè)配置文件標(biāo)識(shí)以及對(duì)應(yīng)的第二配置文件哈希值;
15、所述將本地保存的第二全局應(yīng)用配置哈希表與所述第一全局應(yīng)用配置哈希表進(jìn)行比對(duì),確定所述第一全局應(yīng)用配置哈希表中發(fā)生變更的配置文件哈希值,包括:
16、將所述第二全局應(yīng)用配置哈希表中的各個(gè)第二配置文件哈希值,分別與所述第一全局應(yīng)用配置哈希表中相對(duì)應(yīng)的第一配置文件哈希值進(jìn)行比對(duì),得到發(fā)生變更的第一配置文件哈希值;其中,每個(gè)第二配置文件哈希值與相對(duì)應(yīng)的第一配置文件哈希值的配置文件標(biāo)識(shí)相同。
17、在一種可能的實(shí)施例中,根據(jù)所述發(fā)生變更的配置文件,更新本地配置信息,包括:
18、根據(jù)所述發(fā)生變更的配置文件中的配置屬性,更新本地配置屬性;以及
19、根據(jù)所述發(fā)生變更的配置文件對(duì)應(yīng)的配置文件哈希值,更新所述第二全局應(yīng)用配置哈希表。
20、第二方面,本技術(shù)實(shí)施例提供一種應(yīng)用配置方法,應(yīng)用于服務(wù)端,所述方法包括:
21、接收客戶端發(fā)送的第一全局應(yīng)用配置哈希表的獲取請(qǐng)求,所述獲取請(qǐng)求是所述客戶端在檢測(cè)到目標(biāo)應(yīng)用的全局應(yīng)用配置哈希值發(fā)生變更時(shí)發(fā)送的,所述全局應(yīng)用配置哈希值是:基于所述第一全局應(yīng)用配置哈希表中的各個(gè)配置文件哈希值生成的,所述第一全局應(yīng)用配置哈希表是以所述目標(biāo)應(yīng)用的全局唯一標(biāo)識(shí)為主鍵生成的;
22、將所述第一全局應(yīng)用配置哈希表發(fā)送給所述客戶端,以使所述客戶端將本地保存的第二全局應(yīng)用配置哈希表與所述第一全局應(yīng)用配置哈希表進(jìn)行比對(duì),確定所述第一全局應(yīng)用配置哈希表中發(fā)生變更的配置文件哈希值;
23、接收所述客戶端發(fā)送的配置文件獲取請(qǐng)求,所述配置文件獲取請(qǐng)求包括:所述發(fā)生變更的配置文件哈希值對(duì)應(yīng)的配置文件標(biāo)識(shí);
24、基于所述發(fā)生變更的配置文件哈希值對(duì)應(yīng)的配置文件標(biāo)識(shí),將發(fā)生變更的配置文件發(fā)送給所述客戶端。
25、在一種可能的實(shí)施例中,所述第一全局應(yīng)用配置哈希表以及所述全局應(yīng)用配置哈希值是通過(guò)以下方式生成的:
26、生成所述目標(biāo)應(yīng)用的全局唯一標(biāo)識(shí);
27、針對(duì)所述目標(biāo)應(yīng)用的多個(gè)版本,以所述全局唯一標(biāo)識(shí)和每個(gè)版本的版本信息為主鍵,創(chuàng)建每個(gè)版本的第一全局應(yīng)用配置哈希表;其中,所述多個(gè)版本包括默認(rèn)版本和指定版本;
28、獲取每個(gè)版本對(duì)應(yīng)的各個(gè)配置文件,將所述各個(gè)配置文件的配置文件標(biāo)識(shí)和配置文件哈希值,保存至相應(yīng)版本的第一全局應(yīng)用配置哈希表中;
29、基于每個(gè)版本的第一全局應(yīng)用配置哈希表中的配置文件哈希值,生成每個(gè)版本的全局應(yīng)用配置哈希值。
30、在一種可能的實(shí)施例中,所述基于每個(gè)版本的第一全局應(yīng)用配置哈希表中的配置文件哈希值,生成每個(gè)版本的全局應(yīng)用配置哈希值,包括:
31、將每個(gè)版本的第一全局應(yīng)用配置哈希表中的各個(gè)配置文件哈希值進(jìn)行拼接,獲得拼接哈希值,并對(duì)所述拼接哈希值進(jìn)行哈希運(yùn)算,得到每個(gè)版本的全局應(yīng)用配置哈希值。
32、在一種可能的實(shí)施例中,所述方法還包括:
33、在更新所述目標(biāo)應(yīng)用的目標(biāo)配置文件的文件內(nèi)容后,基于所述目標(biāo)配置文件更新后的文件內(nèi)容,生成所述目標(biāo)配置文件更新后的配置文件哈希值;
34、確定所述目標(biāo)配置文件對(duì)應(yīng)的至少一個(gè)版本,并在所述至少一個(gè)版本的第一全局應(yīng)用配置哈希值表中,更新所述目標(biāo)配置文件的配置文件哈希值;
35、基于更新后的每個(gè)第一全局應(yīng)用配置哈希值表中的各個(gè)配置文件哈希值,重新生成對(duì)應(yīng)的全局應(yīng)用配置哈希值。
36、在一種可能的實(shí)施例中,所述目標(biāo)應(yīng)用的配置文件分為應(yīng)用公共配置組、應(yīng)用默認(rèn)配置組和應(yīng)用版本配置組,所述應(yīng)用公共配置組包括所述多個(gè)版本公共的配置文件,所述應(yīng)用默認(rèn)配置組包括所述默認(rèn)版本對(duì)應(yīng)的配置文件,所述應(yīng)用版本配置組包括所述指定版本對(duì)應(yīng)的配置文件,所述方法還包括:
37、在更新所述目標(biāo)應(yīng)用目標(biāo)配置文件的文件內(nèi)容時(shí),若所述目標(biāo)配置文件存在于所述應(yīng)用公共配置組、所述應(yīng)用默認(rèn)配置組、所述應(yīng)用版本配置組中的至少兩組中,則按照設(shè)定順序依次更新所述至少兩組中的所述目標(biāo)配置文件的文件內(nèi)容;
38、其中,同一配置文件在所述應(yīng)用公共配置組、所述應(yīng)用默認(rèn)配置組和所述應(yīng)用版本配置組中的優(yōu)先級(jí)依次遞增。
39、在一種可能的實(shí)施例中,所述接收客戶端發(fā)送的第一全局應(yīng)用配置哈希表的獲取請(qǐng)求,包括:
40、接收所述客戶端發(fā)送的目標(biāo)版本的第一全局應(yīng)用配置哈希表的獲取請(qǐng)求;其中,所述目標(biāo)版本為所述默認(rèn)版本或者所述指定版本;
41、所述將所述第一全局應(yīng)用配置哈希表發(fā)送給所述客戶端,包括:
42、將所述目標(biāo)版本的第一全局應(yīng)用配置哈希表發(fā)送給所述客戶端。
43、第三方面,本技術(shù)實(shí)施例提供一種應(yīng)用配置方法,所述方法包括:
44、檢測(cè)目標(biāo)應(yīng)用的全局應(yīng)用配置哈希值是否發(fā)生變更;其中,所述全局應(yīng)用配置哈希值是:基于第一全局應(yīng)用配置哈希表中的各個(gè)配置文件哈希值生成的,所述第一全局應(yīng)用配置哈希表是以所述目標(biāo)應(yīng)用的全局唯一標(biāo)識(shí)為主鍵生成的;
45、當(dāng)確定所述全局應(yīng)用配置哈希值發(fā)生變更時(shí),獲取所述第一全局應(yīng)用配置哈希表;
46、將本地保存的第二全局應(yīng)用配置哈希表與獲取的所述第一全局應(yīng)用配置哈希表進(jìn)行比對(duì),確定所述第一全局應(yīng)用配置哈希表中發(fā)生變更的配置文件哈希值;
47、基于所述發(fā)生變更的配置文件哈希值對(duì)應(yīng)的配置文件標(biāo)識(shí),獲取發(fā)生變更的配置文件,并根據(jù)所述發(fā)生變更的配置文件更新本地配置信息。
48、第四方面,本技術(shù)實(shí)施例提供一種應(yīng)用配置裝置,設(shè)置于安裝有目標(biāo)應(yīng)用的客戶端,所述裝置包括:
49、檢測(cè)模塊,用于檢測(cè)服務(wù)端的所述目標(biāo)應(yīng)用的全局應(yīng)用配置哈希值是否發(fā)生變更;其中,所述全局應(yīng)用配置哈希值是:基于第一全局應(yīng)用配置哈希表中的配置文件哈希值生成的,所述第一全局應(yīng)用配置哈希表是以所述目標(biāo)應(yīng)用的全局唯一標(biāo)識(shí)為主鍵生成的;
50、獲取模塊,用于當(dāng)確定所述全局應(yīng)用配置哈希值發(fā)生變更時(shí),從所述服務(wù)端獲取所述第一全局應(yīng)用配置哈希表;
51、比對(duì)模塊,用于將本地第一全局應(yīng)用配置哈希表與獲取的所述第一全局應(yīng)用配置哈希表進(jìn)行比對(duì),確定所述第一全局應(yīng)用配置哈希表中發(fā)生變更的配置文件哈希值;
52、更新模塊,用于基于發(fā)生變更的配置文件哈希值對(duì)應(yīng)的配置文件標(biāo)識(shí),從所述服務(wù)端獲取發(fā)生變更的配置文件,并根據(jù)所述發(fā)生變更的配置文件更新本地配置信息。
53、在一種可能的實(shí)施例中,所述全局應(yīng)用配置哈希值包括所述目標(biāo)應(yīng)用的多個(gè)版本的全局應(yīng)用配置哈希值,每個(gè)版本的全局應(yīng)用配置哈希值是:基于相應(yīng)版本的第一全局應(yīng)用配置哈希表中的配置文件哈希值生成的,所述相應(yīng)版本的第一全局應(yīng)用配置哈希表是:以所述全局唯一標(biāo)識(shí)以及所述相應(yīng)版本為主鍵生成的;
54、所述檢測(cè)模塊具體用于:
55、當(dāng)安裝的所述目標(biāo)應(yīng)用為所述多個(gè)版本中的目標(biāo)版本時(shí),檢測(cè)所述服務(wù)端的所述目標(biāo)版本的全局應(yīng)用配置哈希值是否發(fā)生變更;其中,所述目標(biāo)版本為默認(rèn)版本或者指定版本。
56、在一種可能的實(shí)施例中,所述獲取模塊具體用于:
57、當(dāng)確定所述目標(biāo)版本的全局應(yīng)用配置哈希值發(fā)生變更時(shí),向所述服務(wù)端發(fā)送所述目標(biāo)版本的第一全局應(yīng)用配置哈希表的獲取請(qǐng)求;
58、接收所述服務(wù)端返回的所述目標(biāo)版本的第一全局應(yīng)用配置哈希表。
59、在一種可能的實(shí)施例中,所述第一全局應(yīng)用配置哈希表包括各個(gè)配置文件標(biāo)識(shí)以及對(duì)應(yīng)的第一配置文件哈希值,所述第二全局應(yīng)用配置哈希表包括各個(gè)配置文件標(biāo)識(shí)以及對(duì)應(yīng)的第二配置文件哈希值;
60、所述比對(duì)模塊具體用于:
61、將所述第二全局應(yīng)用配置哈希表中的各個(gè)第二配置文件哈希值,分別與所述第一全局應(yīng)用配置哈希表中相對(duì)應(yīng)的第一配置文件哈希值進(jìn)行比對(duì),得到發(fā)生變更的第一配置文件哈希值;其中,每個(gè)第二配置文件哈希值與相對(duì)應(yīng)的第一配置文件哈希值的配置文件標(biāo)識(shí)相同。
62、在一種可能的實(shí)施例中,所述更新模塊具體用于:
63、根據(jù)所述發(fā)生變更的配置文件中的配置屬性,更新本地配置屬性;以及
64、根據(jù)所述發(fā)生變更的配置文件對(duì)應(yīng)的配置文件哈希值,更新所述第二全局應(yīng)用配置哈希表。
65、第五方面,本技術(shù)實(shí)施例提供一種應(yīng)用配置裝置,設(shè)置于服務(wù)端,所述裝置包括:
66、第一接收模塊,用于接收客戶端發(fā)送的第一全局應(yīng)用配置哈希表的獲取請(qǐng)求,所述獲取請(qǐng)求是所述客戶端在檢測(cè)到目標(biāo)應(yīng)用的全局應(yīng)用配置哈希值發(fā)生變更時(shí)發(fā)送的,所述全局應(yīng)用配置哈希值是基于所述第一全局應(yīng)用配置哈希表中的配置文件哈希值生成的,所述第一全局應(yīng)用配置哈希表是以所述目標(biāo)應(yīng)用的全局唯一標(biāo)識(shí)為主鍵生成的;
67、第一發(fā)送模塊,用于將所述第一全局應(yīng)用配置哈希表發(fā)送給所述客戶端,以使所述客戶端將本地保存的第二全局應(yīng)用配置哈希表與所述第一全局應(yīng)用配置哈希表進(jìn)行比對(duì),確定所述第一全局應(yīng)用配置哈希表中發(fā)生變更的配置文件哈希值;
68、第二接收模塊,用于接收所述客戶端發(fā)送的配置文件獲取請(qǐng)求,所述配置文件獲取請(qǐng)求包括:所述發(fā)生變更的配置文件哈希值對(duì)應(yīng)的配置文件標(biāo)識(shí);
69、第二發(fā)送模塊,用于基于所述發(fā)生變更的配置文件哈希值對(duì)應(yīng)的配置文件標(biāo)識(shí),將發(fā)生變更的配置文件發(fā)送給所述客戶端。
70、在一種可能的實(shí)施例中,所述裝置還包括生成模塊,用于:
71、生成所述目標(biāo)應(yīng)用的全局唯一標(biāo)識(shí);
72、針對(duì)所述目標(biāo)應(yīng)用的多個(gè)版本,以所述全局唯一標(biāo)識(shí)和每個(gè)版本的版本信息為主鍵,創(chuàng)建每個(gè)版本的第一全局應(yīng)用配置哈希表;其中,所述多個(gè)版本包括默認(rèn)版本和指定版本;
73、獲取每個(gè)版本對(duì)應(yīng)的各個(gè)配置文件,將所述各個(gè)配置文件的配置文件標(biāo)識(shí)和配置文件哈希值,保存至相應(yīng)版本的第一全局應(yīng)用配置哈希表中;
74、基于每個(gè)版本的第一全局應(yīng)用配置哈希表中的配置文件哈希值,生成每個(gè)版本的全局應(yīng)用配置哈希值。
75、在一種可能的實(shí)施例中,所述基于每個(gè)版本的第一全局應(yīng)用配置哈希表中的配置文件哈希值,生成每個(gè)版本的全局應(yīng)用配置哈希值時(shí),所述生成模塊具體用于:
76、將每個(gè)版本的第一全局應(yīng)用配置哈希表中的各個(gè)配置文件哈希值進(jìn)行拼接,獲得拼接哈希值,并對(duì)所述拼接哈希值進(jìn)行哈希運(yùn)算,得到每個(gè)版本的全局應(yīng)用配置哈希值。
77、在一種可能的實(shí)施例中,所述裝置還包括更新模塊,用于:
78、在更新所述目標(biāo)應(yīng)用的目標(biāo)配置文件的文件內(nèi)容后,基于所述目標(biāo)配置文件更新后的文件內(nèi)容,生成所述目標(biāo)配置文件更新后的配置文件哈希值;
79、確定所述目標(biāo)配置文件對(duì)應(yīng)的至少一個(gè)版本,并在所述至少一個(gè)版本的第一全局應(yīng)用配置哈希值表中,更新所述目標(biāo)配置文件的配置文件哈希值;
80、基于更新后的每個(gè)第一全局應(yīng)用配置哈希值表中的各個(gè)配置文件哈希值,重新生成對(duì)應(yīng)的全局應(yīng)用配置哈希值。
81、在一種可能的實(shí)施例中,所述目標(biāo)應(yīng)用的配置文件分為應(yīng)用公共配置組、應(yīng)用默認(rèn)配置組和應(yīng)用版本配置組,所述應(yīng)用公共配置組包括所述多個(gè)版本公共的配置文件,所述應(yīng)用默認(rèn)配置組包括所述默認(rèn)版本對(duì)應(yīng)的配置文件,所述應(yīng)用版本配置組包括所述指定版本對(duì)應(yīng)的配置文件;
82、所述更新模塊還用于:
83、在更新所述目標(biāo)應(yīng)用目標(biāo)配置文件的文件內(nèi)容時(shí),若所述目標(biāo)配置文件存在于所述應(yīng)用公共配置組、所述應(yīng)用默認(rèn)配置組、所述應(yīng)用版本配置組中的至少兩組中,則按照設(shè)定順序依次更新所述至少兩組中的所述目標(biāo)配置文件的文件內(nèi)容;
84、其中,同一配置文件在所述應(yīng)用公共配置組、所述應(yīng)用默認(rèn)配置組和所述應(yīng)用版本配置組中的優(yōu)先級(jí)依次遞增。
85、在一種可能的實(shí)施例中,所述第一接收模塊具體用于:
86、接收所述客戶端發(fā)送的目標(biāo)版本的第一全局應(yīng)用配置哈希表的獲取請(qǐng)求;其中,所述目標(biāo)版本為所述默認(rèn)版本或者所述指定版本;
87、所述第一發(fā)送模塊具體用于:
88、將所述目標(biāo)版本的第一全局應(yīng)用配置哈希表發(fā)送給所述客戶端。
89、第六方面,本技術(shù)提供一種電子設(shè)備,包括:
90、存儲(chǔ)器,用于存儲(chǔ)程序指令;
91、處理器,用于調(diào)用所述存儲(chǔ)器中存儲(chǔ)的程序指令,按照獲得的程序指令執(zhí)行第一方面中任一項(xiàng)或者第二方面中任一項(xiàng)所述的方法包括的步驟。
92、第七方面,本技術(shù)提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括程序指令,所述程序指令當(dāng)被計(jì)算機(jī)執(zhí)行時(shí),使所述計(jì)算機(jī)執(zhí)行第一方面中任一項(xiàng)或者第二方面中任一項(xiàng)所述的方法。
93、第八方面,本技術(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)或者第二方面中任一項(xiàng)所述的方法。