本發(fā)明涉及通訊技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)更新方法、裝置、數(shù)據(jù)調(diào)用端及數(shù)據(jù)更新系統(tǒng)。
背景技術(shù):
現(xiàn)在很多系統(tǒng)中,各種應(yīng)用程序的算法策略等信息,可以放置在內(nèi)存中,由系統(tǒng)初次啟動(dòng)就放置于內(nèi)存中。實(shí)際應(yīng)用中,這些應(yīng)用程序的開(kāi)發(fā)方或管理員經(jīng)常會(huì)對(duì)其算法策略進(jìn)行維護(hù)及更新,此時(shí)數(shù)據(jù)調(diào)用端就需要獲取更新的數(shù)據(jù)?,F(xiàn)有技術(shù)中,會(huì)通過(guò)一定的觸發(fā)方式,如定時(shí)任務(wù)或者數(shù)據(jù)調(diào)用端手動(dòng)觸發(fā)等方式,來(lái)進(jìn)行數(shù)據(jù)的刷新,但是,采用這些觸發(fā)方式獲取更新數(shù)據(jù)時(shí),與程序開(kāi)發(fā)方或管理員發(fā)起更新的時(shí)間存在一定的時(shí)間間隔,并不能實(shí)時(shí)的反映最新的數(shù)據(jù)信息,因此,有必要提供一種數(shù)據(jù)更新方法、裝置、數(shù)據(jù)調(diào)用端及數(shù)據(jù)更新系統(tǒng),實(shí)現(xiàn)更新數(shù)據(jù)的實(shí)時(shí)獲取。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提出一種數(shù)據(jù)更新方法、裝置、數(shù)據(jù)調(diào)用端及數(shù)據(jù)更新系統(tǒng),旨在實(shí)現(xiàn)應(yīng)用程序更新數(shù)據(jù)的實(shí)時(shí)獲取。
第一方面,本發(fā)明提供一種數(shù)據(jù)更新方法,適用于ZooKeeper集群,所述方法包括步驟:
監(jiān)測(cè)集群內(nèi)各路徑節(jié)點(diǎn)下的數(shù)據(jù)是否發(fā)生更新;
當(dāng)某個(gè)路徑節(jié)點(diǎn)下的數(shù)據(jù)發(fā)生更新時(shí),向所述路徑節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)調(diào)用端發(fā)送更新通知,以使所述數(shù)據(jù)調(diào)用端及時(shí)從所述路徑節(jié)點(diǎn)獲取最新數(shù)據(jù)。
可選的,所述監(jiān)測(cè)集群內(nèi)各路徑節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)更新之前,所述方法還包括:
接收數(shù)據(jù)調(diào)用端的注冊(cè)請(qǐng)求;
根據(jù)所述注冊(cè)請(qǐng)求為所述數(shù)據(jù)調(diào)用端建立路徑節(jié)點(diǎn)并生成相應(yīng)的鏈接。
可選的,所述當(dāng)某個(gè)路徑節(jié)點(diǎn)下的數(shù)據(jù)發(fā)生更新時(shí),向所述注冊(cè)所述節(jié)點(diǎn)的服務(wù)器發(fā)送更新通知,包括;
后臺(tái)服務(wù)器將更新數(shù)據(jù)發(fā)送給所述ZooKeeper集群,以使所述ZooKeeper集群將所述更新數(shù)據(jù)保存到指定的路徑節(jié)點(diǎn)下;
所述ZooKeeper集群根據(jù)所述鏈接向所述路徑節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)調(diào)用端發(fā)送所述更新通知。
可選的,所述方法還包括:
所述數(shù)據(jù)調(diào)用端在注冊(cè)成功、開(kāi)機(jī)或重啟時(shí),將其內(nèi)存中存儲(chǔ)的策略數(shù)據(jù)、算法數(shù)據(jù)或設(shè)置數(shù)據(jù)發(fā)送到所述ZooKeeper集群,以使所述ZooKeeper集群將所述策略數(shù)據(jù)、算法數(shù)據(jù)或設(shè)置數(shù)據(jù)保存到注冊(cè)的路徑節(jié)點(diǎn)下。
可選的,所述ZooKeeper集群根據(jù)所述鏈接向所述路徑節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)調(diào)用端發(fā)送更新通知之后,所述方法還包括:
所述數(shù)據(jù)調(diào)用端接收所述ZooKeeper集群發(fā)送的更新通知并下載所述路徑節(jié)點(diǎn)下的最新數(shù)據(jù)。
第二方面,本發(fā)明還提出一種數(shù)據(jù)更新裝置,適用于ZooKeeper集群,其特征在于,所述ZooKeeper集群包括:
監(jiān)測(cè)模塊,用于監(jiān)測(cè)集群內(nèi)各路徑節(jié)點(diǎn)下的數(shù)據(jù)是否發(fā)生更新;
通知模塊,用于在某個(gè)路徑節(jié)點(diǎn)下的數(shù)據(jù)發(fā)生更新時(shí),向所述路徑節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)調(diào)用端發(fā)送更新通知,以使所述數(shù)據(jù)調(diào)用端及時(shí)從所述路徑節(jié)點(diǎn)獲取最新數(shù)據(jù)。
可選的,所述ZooKeeper集群還包括:
接收模塊,用于接收數(shù)據(jù)調(diào)用端的注冊(cè)請(qǐng)求;
節(jié)點(diǎn)建立模塊,用于根據(jù)所述注冊(cè)請(qǐng)求為所述數(shù)據(jù)調(diào)用端建立路徑節(jié)點(diǎn)并生成相應(yīng)的鏈接;
所述通知模塊,還用于根據(jù)所述鏈接向所述路徑節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)調(diào)用端發(fā)送所述更新通知。
第三方面,本發(fā)明還提出一種數(shù)據(jù)調(diào)用端,其特征在于,所述數(shù)據(jù)調(diào)用端包括:
接收單元,用于接收所述ZooKeeper集群發(fā)送的更新通知;
下載模塊,用于下載所述注冊(cè)的路徑節(jié)點(diǎn)下的最新數(shù)據(jù)。
可選的,所述數(shù)據(jù)調(diào)用端還包括:
注冊(cè)模塊,用于向所述ZooKeeper發(fā)送注冊(cè)請(qǐng)求;
發(fā)送單元,用于在注冊(cè)成功或重啟時(shí),將其內(nèi)存上的策略數(shù)據(jù)、算法數(shù)據(jù)或設(shè)置數(shù)據(jù)發(fā)送到所述ZooKeeper集群,以使所述ZooKeeper集群將所述策略數(shù)據(jù)、算法數(shù)據(jù)或設(shè)置數(shù)據(jù)保存到注冊(cè)的路徑節(jié)點(diǎn)下。
第四方面,本發(fā)明還提出一種數(shù)據(jù)更新系統(tǒng),其特征在于,所述系統(tǒng)包括如第一方面所述的數(shù)據(jù)更新裝置、后臺(tái)服務(wù)器以及如第三方面所述的數(shù)據(jù)調(diào)用端:
所述數(shù)據(jù)更新裝置,用于為所述后臺(tái)服務(wù)器建立路徑節(jié)點(diǎn)、接收所述后臺(tái)服務(wù)器的更新數(shù)據(jù)以及向所述后臺(tái)服務(wù)器發(fā)送更新通知;
所述后臺(tái)服務(wù)器,用于將所述更新數(shù)據(jù)發(fā)送給所述數(shù)據(jù)更新裝置;
所述數(shù)據(jù)調(diào)用端,用于向所述數(shù)據(jù)更新裝置,并根據(jù)所述更新通知獲取最新數(shù)據(jù)。
本發(fā)明提出的數(shù)據(jù)更新的方法、裝置及系統(tǒng),采用ZooKeeper集群來(lái)實(shí)現(xiàn)種動(dòng)態(tài)獲取最新數(shù)據(jù)的功能,并能夠減少單點(diǎn)故障,同時(shí),每次數(shù)據(jù)更新的動(dòng)態(tài)可發(fā)送至ZooKeeper集群中,通過(guò)監(jiān)控各路徑節(jié)點(diǎn)下數(shù)據(jù)的更新?tīng)顟B(tài),近乎實(shí)時(shí)的反饋給調(diào)用方,通知其監(jiān)控的數(shù)據(jù)已更改。使用此方式來(lái)實(shí)現(xiàn)動(dòng)態(tài)獲取策略的功能,減少調(diào)用方獲取策略的時(shí)間間隔,以近乎實(shí)時(shí)的方式通知數(shù)據(jù)調(diào)用端改變策略,提高了數(shù)據(jù)調(diào)用端獲取策略的效率。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例一提供的一種數(shù)據(jù)更新方法的流程圖;
圖2為本發(fā)明實(shí)施例二提供的一種數(shù)據(jù)更新系統(tǒng)的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例二中數(shù)據(jù)更新裝置的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例二中后臺(tái)服務(wù)器的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實(shí)施例二中數(shù)據(jù)調(diào)用端的結(jié)構(gòu)示意圖;
圖6為本發(fā)明實(shí)施例三提供的一種數(shù)據(jù)更新的方法流程圖;
圖7為本發(fā)明實(shí)施例三中建立的數(shù)據(jù)更新系統(tǒng)的示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
現(xiàn)在將參考附圖描述實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的移動(dòng)終端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說(shuō)明,其本身并沒(méi)有特定的意義。因此,″模塊″與″部件″可以混合地使用。
本發(fā)明第一實(shí)施例提出一種數(shù)據(jù)更新的方法,適用于ZooKeeper集群。請(qǐng)參閱圖1,該方法包括如下步驟:
S101、監(jiān)測(cè)集群內(nèi)各路徑節(jié)點(diǎn)下的數(shù)據(jù)是否發(fā)生更新;
S102、當(dāng)某個(gè)路徑節(jié)點(diǎn)下的數(shù)據(jù)發(fā)生更新時(shí),向該路徑節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)調(diào)用端發(fā)送更新通知,以使該數(shù)據(jù)調(diào)用端及時(shí)從該路徑節(jié)點(diǎn)獲取最新數(shù)據(jù)。
實(shí)際應(yīng)用種,該路徑節(jié)點(diǎn)下的數(shù)據(jù)可以包括算法數(shù)據(jù)、策略數(shù)據(jù)或設(shè)置數(shù)據(jù)中的至少一種。
實(shí)際應(yīng)用中,對(duì)各路徑節(jié)點(diǎn)下的數(shù)據(jù)更新的監(jiān)控,可以由各路徑節(jié)點(diǎn)執(zhí)行。
在一個(gè)可選的方案中,該方法還包括:
預(yù)先搭建ZooKeeper集群的相關(guān)環(huán)境,以及下載相關(guān)工具包。
ZooKeeper是一個(gè)分布式的,開(kāi)放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個(gè)開(kāi)源的實(shí)現(xiàn),是Hadoop和Hbase的重要組件。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等。它包含一個(gè)簡(jiǎn)單的原語(yǔ)集,分布式應(yīng)用程序可以基于它實(shí)現(xiàn)同步服務(wù),配置維護(hù)和命名服務(wù)等。
在一個(gè)可選的方案中,步驟S101、監(jiān)測(cè)集群內(nèi)各路徑節(jié)點(diǎn)下的數(shù)據(jù)是否發(fā)生更新之前,該方法還包括:
接收數(shù)據(jù)調(diào)用端的注冊(cè)請(qǐng)求;
根據(jù)該注冊(cè)請(qǐng)求為該數(shù)據(jù)調(diào)用端建立路徑節(jié)點(diǎn)并生成相應(yīng)的鏈接。
實(shí)際應(yīng)用中,在數(shù)據(jù)調(diào)用端的應(yīng)用程序中(route),需要編寫(xiě)ZooKeeper的注冊(cè)代碼,讓?xiě)?yīng)用程序自啟動(dòng)后調(diào)用該注冊(cè)代碼向ZooKeeper集群(配置中心)進(jìn)行相關(guān)的注冊(cè)動(dòng)作。
通過(guò)注冊(cè)后,該數(shù)據(jù)調(diào)用端已處于ZooKeeper集群的監(jiān)控之下,同時(shí),通過(guò)注冊(cè)動(dòng)作,路徑節(jié)點(diǎn)(route node)已經(jīng)完成針對(duì)ZooKeeper集群中相關(guān)策略節(jié)點(diǎn)的監(jiān)控(watch)動(dòng)作。
實(shí)際應(yīng)用中,每個(gè)策略在ZooKeeper中都有一個(gè)存放路徑的節(jié)點(diǎn)。
當(dāng)注冊(cè)完成后數(shù)據(jù)調(diào)用端將其內(nèi)存中的存儲(chǔ)的策略數(shù)據(jù)、算法數(shù)據(jù)或設(shè)置數(shù)據(jù)發(fā)送到ZooKeeper集群,ZooKeeper集群這些數(shù)據(jù)保存到為該數(shù)據(jù)調(diào)用端建立的路徑節(jié)點(diǎn)下,即該路徑節(jié)點(diǎn)對(duì)應(yīng)的地址中。
在注冊(cè)完成后,每當(dāng)該數(shù)據(jù)調(diào)用端開(kāi)機(jī)或重啟時(shí),也會(huì)其內(nèi)存中的存儲(chǔ)的策略數(shù)據(jù)、算法數(shù)據(jù)或設(shè)置數(shù)據(jù)發(fā)送到ZooKeeper集群,ZooKeeper集群這些數(shù)據(jù)保存到為該數(shù)據(jù)調(diào)用端建立的路徑節(jié)點(diǎn)下。
在一個(gè)可選的方案中,步驟S102、向該注冊(cè)該節(jié)點(diǎn)的服務(wù)器發(fā)送更新通知,包括:
后臺(tái)服務(wù)器將更新數(shù)據(jù)發(fā)送給該ZooKeeper集群,以使該ZooKeeper集群將該更新數(shù)據(jù)保存到指定的路徑節(jié)點(diǎn)下;
該ZooKeeper集群根據(jù)該鏈接向該路徑節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)調(diào)用端發(fā)送該更新通知。
實(shí)際應(yīng)用中,后臺(tái)管理人員通過(guò)管理后臺(tái),進(jìn)行相關(guān)策略的配置動(dòng)作。點(diǎn)擊確認(rèn)后,由后臺(tái)程序進(jìn)行相關(guān)業(yè)務(wù)計(jì)算,生成計(jì)算后的策略,并發(fā)送至ZooKeeper集群中。根據(jù)不同的服務(wù)或需要,管理人員可以指定需要進(jìn)行業(yè)務(wù)更新的數(shù)據(jù)調(diào)用端,因此,在進(jìn)行設(shè)置時(shí),指定將生成的策略該數(shù)據(jù)調(diào)用端注冊(cè)的路徑節(jié)點(diǎn)。
在一個(gè)可選的方案中,步驟S102、向該路徑節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)調(diào)用端發(fā)送更新通知之后,該方法還包括:
該數(shù)據(jù)調(diào)用端接收該更新通知;
下載該路徑節(jié)點(diǎn)下的最新數(shù)據(jù)。
本實(shí)施例的數(shù)據(jù)更新的方法,通過(guò)ZooKeeper集群來(lái)實(shí)現(xiàn)種動(dòng)態(tài)獲取最新數(shù)據(jù)的功能,并能夠減少單點(diǎn)故障,同時(shí),每次數(shù)據(jù)更新的動(dòng)態(tài)可發(fā)送至ZooKeeper集群中,通過(guò)監(jiān)控路徑節(jié)點(diǎn)下數(shù)據(jù)的更新?tīng)顟B(tài),近乎實(shí)時(shí)的反饋給調(diào)用方,通知其監(jiān)控的數(shù)據(jù)已更改。使用此方式來(lái)實(shí)現(xiàn)動(dòng)態(tài)獲取策略的功能,減少調(diào)用方獲取策略的時(shí)間間隔,以近乎實(shí)時(shí)的方式通知數(shù)據(jù)調(diào)用端改變策略,提高了數(shù)據(jù)調(diào)用端獲取策略的效率。
本發(fā)明實(shí)施例二提供一種數(shù)據(jù)更新系統(tǒng),請(qǐng)參閱圖2,該系統(tǒng)包括數(shù)據(jù)更新裝置201、后臺(tái)服務(wù)器202及數(shù)據(jù)調(diào)用端203:
該數(shù)據(jù)更新裝置201,用于為該后臺(tái)服務(wù)器建立路徑節(jié)點(diǎn)、接收該后臺(tái)服務(wù)器的更新數(shù)據(jù)以及向該后臺(tái)服務(wù)器發(fā)送更新通知;
該后臺(tái)服務(wù)器202,用于將該更新數(shù)據(jù)發(fā)送給該數(shù)據(jù)更新裝置201;
該數(shù)據(jù)調(diào)用端203,用于向該數(shù)據(jù)更新裝置201注冊(cè),并根據(jù)該更新通知獲取最新數(shù)據(jù)。
實(shí)際應(yīng)用種,該路徑節(jié)點(diǎn)下的數(shù)據(jù)可以包括算法數(shù)據(jù)、策略數(shù)據(jù)或設(shè)置數(shù)據(jù)中的至少一種。
請(qǐng)參閱圖3,數(shù)據(jù)更新裝置201適用于ZooKeeper集群,其包括:
監(jiān)測(cè)模塊2011,用于監(jiān)測(cè)集群內(nèi)各路徑節(jié)點(diǎn)下的數(shù)據(jù)是否發(fā)生更新;
通知模塊2012,用于在某個(gè)路徑節(jié)點(diǎn)下的數(shù)據(jù)發(fā)生更新時(shí),向該路徑節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)調(diào)用端發(fā)送更新通知,以使該數(shù)據(jù)調(diào)用端及時(shí)從該路徑節(jié)點(diǎn)獲取最新數(shù)據(jù)。
實(shí)際應(yīng)用中,對(duì)各路徑節(jié)點(diǎn)下的數(shù)據(jù)更新的監(jiān)控,可以由各路徑節(jié)點(diǎn)執(zhí)行。
在一個(gè)可選的方案中,該數(shù)據(jù)更新裝置201還可以包括:
接收模塊,用于接收數(shù)據(jù)調(diào)用端的注冊(cè)請(qǐng)求;
節(jié)點(diǎn)建立模塊,用于根據(jù)該注冊(cè)請(qǐng)求為該數(shù)據(jù)調(diào)用端建立路徑節(jié)點(diǎn)并生成相應(yīng)的鏈接。
通過(guò)注冊(cè)后,該數(shù)據(jù)調(diào)用端已處于數(shù)據(jù)更新裝置201的監(jiān)控之下,同時(shí),通過(guò)注冊(cè)動(dòng)作,路徑節(jié)點(diǎn)(route node)已經(jīng)完成針對(duì)ZooKeeper集群中相關(guān)策略節(jié)點(diǎn)的監(jiān)控(watch)動(dòng)作。
在一個(gè)可選的方案中,該通知模塊2012,還用于根據(jù)該鏈接向該路徑節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)調(diào)用端發(fā)送該更新通知。
請(qǐng)參閱圖4,后臺(tái)服務(wù)器202,包括:
數(shù)據(jù)更新模塊2021,用于根據(jù)管理員輸入的配置指令,更新數(shù)據(jù);
發(fā)送模塊2022,用于將該更新數(shù)據(jù)發(fā)給數(shù)據(jù)更新裝置201,以使該數(shù)據(jù)更新裝置201其將該更新數(shù)據(jù)保存到指定的路徑節(jié)點(diǎn)下。
實(shí)際應(yīng)用中,后臺(tái)管理人員通過(guò)管理后臺(tái),進(jìn)行相關(guān)策略的配置動(dòng)作。點(diǎn)擊確認(rèn)后,由后臺(tái)程序進(jìn)行相關(guān)業(yè)務(wù)計(jì)算,生成計(jì)算后的策略,并發(fā)送至數(shù)據(jù)更新裝置201中。根據(jù)不同的服務(wù)或需要,管理人員可以指定需要進(jìn)行業(yè)務(wù)更新的數(shù)據(jù)調(diào)用端,因此,在進(jìn)行設(shè)置時(shí),指定將生成的策略該數(shù)據(jù)調(diào)用端注冊(cè)的路徑節(jié)點(diǎn)。
請(qǐng)參閱圖5,數(shù)據(jù)調(diào)用端203,包括:
接收單元2031,用于接收該數(shù)據(jù)更新裝置201發(fā)送的更新通知;
下載模塊2032,用于下載該注冊(cè)的路徑節(jié)點(diǎn)下的最新數(shù)據(jù)。
在一個(gè)可選的方案中,數(shù)據(jù)調(diào)用端203,還可以包括:
注冊(cè)模塊,用于向數(shù)據(jù)更新裝置201發(fā)送注冊(cè)請(qǐng)求;
發(fā)送單元,用于在注冊(cè)成功或重啟時(shí),將其內(nèi)存上的策略數(shù)據(jù)、算法數(shù)據(jù)或設(shè)置數(shù)據(jù)發(fā)送到該數(shù)據(jù)更新裝置201,以使該數(shù)據(jù)更新裝置201將該策略數(shù)據(jù)、算法數(shù)據(jù)或設(shè)置數(shù)據(jù)保存到注冊(cè)的路徑節(jié)點(diǎn)下。
實(shí)際應(yīng)用中,在數(shù)據(jù)調(diào)用端的應(yīng)用程序中(route),需要編寫(xiě)ZooKeeper的注冊(cè)代碼,讓?xiě)?yīng)用程序自啟動(dòng)后調(diào)用該注冊(cè)代碼向數(shù)據(jù)更新裝置201(ZooKeeper集群配置中心)進(jìn)行相關(guān)的注冊(cè)動(dòng)作。
當(dāng)注冊(cè)完成后數(shù)據(jù)調(diào)用端將其內(nèi)存中的存儲(chǔ)的策略數(shù)據(jù)、算法數(shù)據(jù)或設(shè)置數(shù)據(jù)發(fā)送到數(shù)據(jù)更新裝置201,數(shù)據(jù)更新裝置201將這些數(shù)據(jù)保存到為該數(shù)據(jù)調(diào)用端建立的路徑節(jié)點(diǎn)下,即該路徑節(jié)點(diǎn)對(duì)應(yīng)的地址中。
在注冊(cè)完成后,每當(dāng)該數(shù)據(jù)調(diào)用端開(kāi)機(jī)或重啟時(shí),也會(huì)其內(nèi)存中的存儲(chǔ)的策略數(shù)據(jù)、算法數(shù)據(jù)或設(shè)置數(shù)據(jù)發(fā)送到數(shù)據(jù)更新裝置201,數(shù)據(jù)更新裝置201將這些數(shù)據(jù)保存到為該數(shù)據(jù)調(diào)用端建立的路徑節(jié)點(diǎn)下。
實(shí)際應(yīng)用中,每個(gè)策略在數(shù)據(jù)更新裝置201中都有一個(gè)存放路徑的節(jié)點(diǎn)。
本實(shí)施例的數(shù)據(jù)更新系統(tǒng),在ZooKeeper集群中采用數(shù)據(jù)更新裝置來(lái)實(shí)現(xiàn)種動(dòng)態(tài)獲取最新數(shù)據(jù)的功能,并能夠減少單點(diǎn)故障,同時(shí),每次數(shù)據(jù)更新的動(dòng)態(tài)可發(fā)送至ZooKeeper集群中,通過(guò)監(jiān)控路徑節(jié)點(diǎn)下數(shù)據(jù)的更新?tīng)顟B(tài),近乎實(shí)時(shí)的反饋給調(diào)用方,通知其監(jiān)控的數(shù)據(jù)已更改。使用此方式來(lái)實(shí)現(xiàn)動(dòng)態(tài)獲取策略的功能,減少調(diào)用方獲取策略的時(shí)間間隔,以近乎實(shí)時(shí)的方式通知數(shù)據(jù)調(diào)用端改變策略,提高了數(shù)據(jù)調(diào)用端獲取策略的效率。
在上述實(shí)施例的基礎(chǔ)上,本發(fā)明實(shí)施例三還提供了另一種數(shù)據(jù)更新的方法。本實(shí)施例種,以數(shù)據(jù)接收端為應(yīng)用程序(Application,APP)接入路由為例進(jìn)行說(shuō)明。請(qǐng)參閱圖6,方法包括:
S601、APP接入路由1向ZooKeeper集群發(fā)送注冊(cè)請(qǐng)求。
S602、ZooKeeper集群為APP接入路由1建立路徑節(jié)點(diǎn)rout-node1,并生成鏈接。
S603、APP接入路由1將其內(nèi)存中存儲(chǔ)的策略發(fā)送給ZooKeeper集群。
S604、ZooKeeper集群將該策略存儲(chǔ)到rout-node1對(duì)應(yīng)的存儲(chǔ)路徑中。
請(qǐng)參閱圖7,本實(shí)施例中,假設(shè)共有3個(gè)APP接入路由(APP接入路由1、APP接入路由2、APP接入路由3)在ZooKeeper集群中進(jìn)行了注冊(cè),每個(gè)APP接入路由對(duì)應(yīng)一個(gè)路徑節(jié)點(diǎn)(rout-node1、rout-node2、rout-node3),每個(gè)路徑下均存儲(chǔ)了一個(gè)策略1。
本實(shí)施例中,每個(gè)rout-node都對(duì)應(yīng)一個(gè)唯一的存儲(chǔ)路徑。
S605、ZooKeeper集群對(duì)各路由節(jié)點(diǎn)下的策略更新進(jìn)行監(jiān)控。
S606、后臺(tái)服務(wù)器將生成的更新數(shù)據(jù)發(fā)送給ZooKeeper集群,并指定需對(duì)rout-node1、rout-node2的數(shù)據(jù)進(jìn)行更新。
S607、ZooKeeper集群將更新數(shù)據(jù)分別存儲(chǔ)到rout-node1、rout-node2的路徑中。
S608、ZooKeeper集群分別根據(jù)rout-node1、rout-node2對(duì)應(yīng)的鏈接,將更新通知發(fā)送給APP接入路由1、APP接入路由2。
S609、APP接入路由1、APP接入路由2接收到通知消息后分別從rout-node1、rout-node2對(duì)應(yīng)的路徑下下載更新后的策略。
本實(shí)施例的數(shù)據(jù)更新的方法,在ZooKeeper集群中實(shí)現(xiàn)種動(dòng)態(tài)獲取最新數(shù)據(jù)的功能,并能夠減少單點(diǎn)故障,同時(shí),每次數(shù)據(jù)更新的動(dòng)態(tài)可發(fā)送至ZooKeeper集群中,通過(guò)監(jiān)控路徑節(jié)點(diǎn)下數(shù)據(jù)的更新?tīng)顟B(tài),近乎實(shí)時(shí)的反饋給調(diào)用方,通知其監(jiān)控的數(shù)據(jù)已更改。使用此方式來(lái)實(shí)現(xiàn)動(dòng)態(tài)獲取策略的功能,減少調(diào)用方獲取策略的時(shí)間間隔,以近乎實(shí)時(shí)的方式通知數(shù)據(jù)調(diào)用端改變策略,提高了數(shù)據(jù)調(diào)用端獲取策略的效率。
需要說(shuō)明的是,在本文中,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者裝置不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者裝置所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過(guò)程、方法、物品或者裝置中還存在另外的相同要素。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤(pán))中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專(zhuān)利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專(zhuān)利保護(hù)范圍內(nèi)。