一種基于zookeeper雙平面數(shù)據(jù)架構(gòu)的分布式調(diào)度方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種基于zookeeper雙平面數(shù)據(jù)架構(gòu)的分布 式調(diào)度方法及系統(tǒng)。
【背景技術(shù)】
[0002] 隨著電信業(yè)務(wù)數(shù)據(jù)業(yè)務(wù)發(fā)展,流量算費(fèi)、出賬和信控過程越來越要求實(shí)時(shí)性。同 時(shí),隨著定向流量、智能管道和管道經(jīng)營等業(yè)務(wù)需求逐漸開展,數(shù)據(jù)流量細(xì)分也成為必經(jīng)之 路。實(shí)時(shí)性的要求以及數(shù)據(jù)流量細(xì)分,將產(chǎn)生更多的服務(wù)使用記錄,對現(xiàn)有BOSS系統(tǒng)處理 能力提出挑戰(zhàn)。
[0003] 從另外一個(gè)角度,隨著4G業(yè)務(wù)不斷鋪開,更快的接入速度產(chǎn)生更多的服務(wù)使用記 錄;同時(shí)更快的接入速度也會(huì)造成更大的欠費(fèi)風(fēng)險(xiǎn),需要更及時(shí)的流量控制過程;另外更 快的接入速度也需要對服務(wù)等級(jí)進(jìn)行細(xì)致劃分。所以在4G時(shí)代數(shù)據(jù)流量細(xì)分從業(yè)務(wù)上講 需要更加細(xì)致,需求也更加迫切。
[0004] 業(yè)務(wù)需求量的激增帶來各種問題,系統(tǒng)間的自動(dòng)銜接和靈活切換不易實(shí)現(xiàn),以及 架構(gòu)變迀對業(yè)務(wù)構(gòu)建的存在較大影響,系統(tǒng)的同步,系統(tǒng)異常處理的及時(shí)性及業(yè)務(wù)系統(tǒng)擴(kuò) 容的靈活性的實(shí)現(xiàn)帶來了很大的難度。系統(tǒng)的部署及切換效率不高,系統(tǒng)靈活性低。
[0005] 因此,數(shù)據(jù)業(yè)務(wù)對BOSS系統(tǒng)的支撐能力要求是爆炸式增長的,更快、更準(zhǔn)確、更合 適的支撐系統(tǒng)建設(shè)是下一代BOSS系統(tǒng)的基本要求。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)的不足,提供一種基于zookeeper雙 平面數(shù)據(jù)架構(gòu)的分布式調(diào)度方法及系統(tǒng)。
[0007] ZooKe印er提供集中式服務(wù),包括配置維護(hù)、服務(wù)命名、分布式同步、組管理。子服 務(wù)常用于分布式應(yīng)用。Zookeeper在分布式應(yīng)用中的可用性,使得BOSS系統(tǒng)云化架構(gòu)的實(shí) 現(xiàn)更加高效、靈活。
[0008] 本發(fā)明利用zookeeper開源服務(wù),在zookeeper中采用了雙平面數(shù)據(jù)架構(gòu),一個(gè)靜 態(tài)的樹狀層級(jí)結(jié)構(gòu)(S),以下簡稱為靜態(tài)樹,指示負(fù)載均衡器的邏輯負(fù)載結(jié)構(gòu);一個(gè)動(dòng)態(tài)的 樹狀層級(jí)結(jié)構(gòu)(D),以下簡稱為動(dòng)態(tài)樹,用以對既有業(yè)務(wù)程序的運(yùn)行情況進(jìn)行實(shí)時(shí)管控。
[0009] 本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種基于zookeeper雙平面數(shù)據(jù)架構(gòu) 的分布式調(diào)度方法,包括如下步驟:
[0010] 步驟1,在zookeeper中構(gòu)建由動(dòng)態(tài)樹和靜態(tài)樹構(gòu)成的雙平面數(shù)據(jù)架構(gòu);
[0011] 步驟2,將業(yè)務(wù)系統(tǒng)的通用配置信息存儲(chǔ)到對應(yīng)的靜態(tài)樹的節(jié)點(diǎn)信息中;
[0012] 步驟3,業(yè)務(wù)系統(tǒng)的業(yè)務(wù)程序啟動(dòng)時(shí)自動(dòng)注冊到zookeeper服務(wù)中,在動(dòng)態(tài)樹中生 成唯一的臨時(shí)動(dòng)態(tài)節(jié)點(diǎn),將所述業(yè)務(wù)程序的屬性信息設(shè)置到臨時(shí)動(dòng)態(tài)節(jié)點(diǎn)中;
[0013] 步驟4,分布式調(diào)度程序分別獲取靜態(tài)樹節(jié)點(diǎn)信息和動(dòng)態(tài)樹節(jié)點(diǎn)信息,根據(jù)預(yù)定的 選取原則選取最優(yōu)的臨時(shí)動(dòng)態(tài)節(jié)點(diǎn),獲取臨時(shí)動(dòng)態(tài)節(jié)點(diǎn)對應(yīng)的業(yè)務(wù)程序,實(shí)現(xiàn)分布式調(diào)度 程序與所述業(yè)務(wù)程序的連接。
[0014] 本發(fā)明的有益效果是:本發(fā)明zookeeper中構(gòu)建雙平面數(shù)據(jù)架構(gòu),通過靜態(tài)樹指 示負(fù)載均衡器的邏輯負(fù)載結(jié)構(gòu),通過動(dòng)態(tài)樹對既有業(yè)務(wù)程序的運(yùn)行情況進(jìn)行實(shí)時(shí)管控,動(dòng) 態(tài)樹與靜態(tài)樹的聯(lián)動(dòng)實(shí)現(xiàn)了邏輯負(fù)載和實(shí)際運(yùn)行的動(dòng)態(tài)結(jié)合,實(shí)現(xiàn)了系統(tǒng)間的自動(dòng)銜接和 靈活切換,消除了架構(gòu)變迀對業(yè)務(wù)構(gòu)建的影響,采用zookeeper作為系統(tǒng)聯(lián)通的橋梁,使得 系統(tǒng)業(yè)務(wù)構(gòu)建在啟動(dòng)和切換以及后期的監(jiān)控過程,變得更加高效、靈活;且在zooke印er上 存儲(chǔ)了系統(tǒng)的通用性配置,當(dāng)在某一臺(tái)主機(jī)修改zookeeper靜態(tài)樹上的系統(tǒng)配置時(shí),修改 后的配置對所有主機(jī)節(jié)點(diǎn)可見,實(shí)現(xiàn)了系統(tǒng)配置的同步;本發(fā)明使得云化系統(tǒng)能夠進(jìn)行高 效、快速的部署及切換,系統(tǒng)靈活性高。
[0015] 在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0016] 進(jìn)一步,步驟1中在zookeeper中構(gòu)建雙平面的數(shù)據(jù)架構(gòu)的具體實(shí)現(xiàn)為:按照業(yè)務(wù) 系統(tǒng)服務(wù)池的規(guī)劃預(yù)先生成靜態(tài)樹的非葉子節(jié)點(diǎn)和葉子節(jié)點(diǎn)以及動(dòng)態(tài)樹的非葉子節(jié)點(diǎn)。
[0017] 進(jìn)一步,步驟3中業(yè)務(wù)程序啟動(dòng)時(shí),注冊臨時(shí)動(dòng)態(tài)節(jié)點(diǎn)到zookeeper服務(wù)中,臨時(shí) 動(dòng)態(tài)節(jié)點(diǎn)按照zookeeper路徑方式命名。
[0018] 采用上述進(jìn)一步方案的有益效果:實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)云化進(jìn)程的統(tǒng)一命名服務(wù),便于 對云化業(yè)務(wù)系統(tǒng)的管理和監(jiān)控。
[0019] 進(jìn)一步,上述技術(shù)方案還包括在進(jìn)行負(fù)載均衡配置時(shí)創(chuàng)建或刪除靜態(tài)樹的葉子節(jié) 點(diǎn)。
[0020] 進(jìn)一步,步驟4中分布式調(diào)度程序從靜態(tài)樹中獲取業(yè)務(wù)系統(tǒng)的通用配置信息,從 動(dòng)態(tài)樹中獲取下一級(jí)子業(yè)務(wù)系統(tǒng)的所有業(yè)務(wù)程序的屬性信息,選取最優(yōu)臨時(shí)動(dòng)態(tài)節(jié)點(diǎn),將 臨時(shí)動(dòng)態(tài)節(jié)點(diǎn)的名稱設(shè)置到靜態(tài)樹的靜態(tài)節(jié)點(diǎn)中,完成靜態(tài)節(jié)點(diǎn)與動(dòng)態(tài)節(jié)點(diǎn)的關(guān)聯(lián)。
[0021] 進(jìn)一步,注冊到zookeeper上的業(yè)務(wù)程序停止時(shí),動(dòng)態(tài)樹上的臨時(shí)動(dòng)態(tài)節(jié)點(diǎn)被刪 除,通過監(jiān)控動(dòng)態(tài)樹上臨時(shí)動(dòng)態(tài)節(jié)點(diǎn)的存在情況,判斷相應(yīng)業(yè)務(wù)系統(tǒng)的運(yùn)行情況。
[0022] 進(jìn)一步,上述技術(shù)方案還包括業(yè)務(wù)系統(tǒng)異常通知及修復(fù)處理,具體實(shí)現(xiàn)為:當(dāng)下一 級(jí)子業(yè)務(wù)系統(tǒng)異常時(shí),分布式調(diào)度程序接收到zooke印er的通知,獲取靜態(tài)樹和動(dòng)態(tài)樹上 各節(jié)點(diǎn)的狀態(tài)信息,根據(jù)獲取的狀態(tài)信息匹配靜態(tài)樹節(jié)點(diǎn)和動(dòng)態(tài)樹節(jié)點(diǎn),查找異常靜態(tài)樹 節(jié)點(diǎn)對應(yīng)的動(dòng)態(tài)樹節(jié)點(diǎn),根據(jù)預(yù)定的選取原則選取最優(yōu)的臨時(shí)動(dòng)態(tài)節(jié)點(diǎn),將其與靜態(tài)節(jié)點(diǎn) 關(guān)聯(lián),進(jìn)行節(jié)點(diǎn)的快速切換,完成系統(tǒng)的異常修復(fù)。
[0023] 采用上述進(jìn)一步方案的有益效果:實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)云化節(jié)點(diǎn)異常的通知及自動(dòng)恢 復(fù)。
[0024] 進(jìn)一步,上述技術(shù)方案還包括對業(yè)務(wù)系統(tǒng)進(jìn)行動(dòng)態(tài)擴(kuò)容,具體實(shí)現(xiàn)為:在 zookeeper靜態(tài)樹上添加葉子節(jié)點(diǎn),分布式調(diào)度程序接收到zookeeper的通知,在原業(yè)務(wù)系 統(tǒng)程序正常運(yùn)行情況下,根據(jù)預(yù)定的選取原則選取最優(yōu)的臨時(shí)動(dòng)態(tài)節(jié)點(diǎn),與新增葉子節(jié)點(diǎn) 進(jìn)行關(guān)聯(lián),增加業(yè)務(wù)系統(tǒng)的業(yè)務(wù)處理節(jié)點(diǎn),實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)的自動(dòng)擴(kuò)容。
[0025] 采用上述進(jìn)一步方案的有益效果:實(shí)現(xiàn)了系統(tǒng)云化便捷擴(kuò)容。
[0026] 本發(fā)明解決上述技術(shù)問題的另一技術(shù)方案如下:一種基于zookeeper雙平面數(shù)據(jù) 架構(gòu)的分布式調(diào)度系統(tǒng),包括靜態(tài)樹模塊、動(dòng)態(tài)樹模塊和分布式調(diào)度模塊;
[0027] 所述靜態(tài)樹模塊,其構(gòu)建于zookeeper中,用于將業(yè)務(wù)系統(tǒng)的通用配置信息存儲(chǔ) 到對應(yīng)的靜態(tài)樹的節(jié)點(diǎn)信息中;
[0028] 所述動(dòng)態(tài)樹模塊,其構(gòu)建于zooke印er中,用于在業(yè)務(wù)系統(tǒng)的業(yè)務(wù)程序啟動(dòng)時(shí),生 成唯一的臨時(shí)動(dòng)態(tài)節(jié)點(diǎn),將所述業(yè)務(wù)程序的屬性信息設(shè)置到臨時(shí)動(dòng)態(tài)節(jié)點(diǎn)中;
[0029] 所述分布式調(diào)度模塊,用于分別獲取靜態(tài)樹節(jié)點(diǎn)信息和動(dòng)態(tài)樹節(jié)點(diǎn)信息,根據(jù)預(yù) 定的選取原則選取最優(yōu)的臨時(shí)動(dòng)態(tài)節(jié)點(diǎn),獲取臨時(shí)動(dòng)態(tài)節(jié)點(diǎn)對應(yīng)的業(yè)務(wù)程序,實(shí)現(xiàn)分布式 調(diào)度程序與所述業(yè)務(wù)程序的連接。
[0030] 在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0031] 進(jìn)一步,當(dāng)下一級(jí)子業(yè)務(wù)系統(tǒng)異常時(shí),分布式調(diào)度模塊接收到zookeeper的通知, 獲取靜態(tài)樹和動(dòng)態(tài)樹上各節(jié)點(diǎn)的狀態(tài)信息,根據(jù)獲取的狀態(tài)信息匹配靜態(tài)樹節(jié)點(diǎn)和動(dòng)態(tài)樹 節(jié)點(diǎn),查找異常靜態(tài)樹節(jié)點(diǎn)對應(yīng)的動(dòng)態(tài)樹節(jié)點(diǎn),根據(jù)預(yù)定的選取原則選取最優(yōu)的臨時(shí)動(dòng)態(tài) 節(jié)點(diǎn),將其與靜態(tài)節(jié)點(diǎn)關(guān)聯(lián),進(jìn)行節(jié)點(diǎn)的快速切換,完成系統(tǒng)的異常修復(fù)。
[0032] 進(jìn)一步,當(dāng)業(yè)務(wù)系統(tǒng)動(dòng)態(tài)擴(kuò)容時(shí),在靜態(tài)樹上添加葉子節(jié)點(diǎn),分布式調(diào)度程序接收 到zooke印er的通知,在原業(yè)務(wù)系統(tǒng)程序正常運(yùn)行情況下,根據(jù)預(yù)定的選取原則選取最優(yōu) 的臨時(shí)動(dòng)態(tài)節(jié)點(diǎn),與新增葉子節(jié)點(diǎn)進(jìn)行關(guān)聯(lián),增加業(yè)務(wù)系統(tǒng)的業(yè)務(wù)處理節(jié)點(diǎn),實(shí)現(xiàn)業(yè)務(wù)系統(tǒng) 的自動(dòng)擴(kuò)容。
【附圖說明】
[0033] 圖1為本發(fā)明所述一種基于zookeeper雙平面數(shù)據(jù)架構(gòu)的分布式調(diào)度系統(tǒng)框圖;
[0034] 圖2為本發(fā)明所述一種基于zooke印er雙平面數(shù)據(jù)架構(gòu)的分布式調(diào)度方法流程 圖;
[0035] 圖3為本發(fā)明所述zookeeper雙平面數(shù)據(jù)架構(gòu)圖。
[0036] 附圖中,各標(biāo)號(hào)所代表的部件列表如下:
[0037] 1、靜態(tài)樹模塊,2、動(dòng)態(tài)樹模塊,3、分布式調(diào)度模塊。
【具體實(shí)施方式】
[0038] 以下結(jié)合附圖對本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并 非用于限定本發(fā)明的范圍。
[0039] 如圖1所示,一種基于zooke印er雙平面數(shù)據(jù)架構(gòu)的分布式調(diào)度系統(tǒng),包括靜態(tài)樹 模塊1、動(dòng)態(tài)樹模塊2和分布式調(diào)度模塊3;所述靜態(tài)樹模塊1,其構(gòu)建于zookeeper中,用 于將業(yè)務(wù)系統(tǒng)的通用配置信息存儲(chǔ)到對應(yīng)的靜態(tài)樹的節(jié)點(diǎn)信息中;所述動(dòng)態(tài)樹模塊2,其 構(gòu)建于zookeeper中,用于在業(yè)務(wù)系統(tǒng)的業(yè)務(wù)程序啟動(dòng)時(shí),生成唯一的臨時(shí)動(dòng)態(tài)節(jié)點(diǎn),將所 述業(yè)務(wù)程序的屬性信息設(shè)置到臨時(shí)動(dòng)態(tài)節(jié)點(diǎn)中;所述分布式調(diào)度模塊3,用于分別獲取靜 態(tài)樹節(jié)點(diǎn)信息和動(dòng)態(tài)樹節(jié)點(diǎn)信息,根據(jù)預(yù)定的選取原則選取最優(yōu)的臨時(shí)動(dòng)態(tài)節(jié)點(diǎn),獲取臨 時(shí)動(dòng)態(tài)節(jié)點(diǎn)對應(yīng)的業(yè)務(wù)程序,實(shí)現(xiàn)分布式調(diào)度程序與所述業(yè)務(wù)程序的連接。
[0040] 如圖2所示,一種基于zookeeper雙平面數(shù)據(jù)架構(gòu)的分布式調(diào)度方法,包括如下步 驟:
[0041] 步驟1,在zookeeper中構(gòu)建由動(dòng)態(tài)樹和靜態(tài)樹構(gòu)成的雙平面數(shù)據(jù)架構(gòu),如圖3所 不。
[0042] 具體地,按照業(yè)務(wù)系統(tǒng)服務(wù)池的規(guī)劃預(yù)先生成靜態(tài)樹的非葉子節(jié)點(diǎn)和葉子節(jié)點(diǎn)以 及動(dòng)態(tài)樹的非葉子節(jié)點(diǎn)。所述靜態(tài)樹和動(dòng)態(tài)樹包括集群節(jié)點(diǎn)、域節(jié)點(diǎn)和池節(jié)點(diǎn)。節(jié)點(diǎn)層級(jí) 及命名規(guī)則如表1。
[0043] 表 1
[0044]
[0045] 靜態(tài)樹和動(dòng)態(tài)樹的非葉子節(jié)點(diǎn)均按照系統(tǒng)服務(wù)池的規(guī)劃提前生成,靜態(tài)樹的葉子 節(jié)點(diǎn)在管理平臺(tái)做負(fù)載均衡配置時(shí)創(chuàng)建和刪除,其他時(shí)間只會(huì)對葉子節(jié)點(diǎn)數(shù)據(jù)進(jìn)行操作。 靜態(tài)結(jié)構(gòu)中的葉子節(jié)點(diǎn)屬性為PERS