新四季網

一種基於Zookeeper的多服務間異步進度控制的方法及系統的製作方法

2023-10-09 14:17:29

一種基於Zookeeper的多服務間異步進度控制的方法及系統的製作方法
【專利摘要】一種基於Zookeeper的多服務間異步進度控制的方法及系統,所述方法包括,新建一個節點;多個服務分別在Zookeeper上註冊觀察所述新建的節點的監聽;當總任務開始後,在所述新建的節點上寫入包括當前需要處理的子任務和處理該子任務的服務的相關信息;所述多個服務通過監聽獲取所述相關信息;每個服務根據所述相關信息進行處理;當所有子任務處理完畢,則總任務結束。本發明能夠高效、簡便地實現多服務間的異步進度控制。
【專利說明】—種基於Zookeeper的多服務間異步進度控制的方法及系統
【技術領域】
[0001]本發明涉及分布式系統領域,尤其涉及一種基於Zook^per的多服務間異步進度控制的方法及系統。
【背景技術】
[0002]複雜軟體一般由不同的服務共同協調完成一項複雜的功能。這些不同的服務有可能運行在相同的物理伺服器上,也有可能運行在不同的物理伺服器上。不管對方服務運行在哪,多服務間需要以某種事先協商好的機制統一協調進度,並按照一定步驟共同完成某項負責的任務,但是目前還沒有一種很好的方法來高效、簡便地實現上述多服務間的異步進度控制。
[0003]Zookeeper是一個分布式的,開放源碼的分布式應用程式協調服務。在Zookeeper中,znode是一個跟Unix文件系統路徑相似的節點,可以往這個節點存儲或獲取數據。Zookeeper使用Watcher察覺事件信息,當客戶端接收到事件信息,比如連接超時,節點數據改變,子節點改變,可以調用相應的行為來處理數據。在對現有技術的研究和實踐過程中,發明人發現現有技術至少存在以下問題:對於上述複雜軟體目前還沒有一種很好的方法來高效、簡便地實現上述多服務間的異步進度控制,同時Zookeeper尚不能直接應用於對複雜軟體進行異步進度控制。

【發明內容】

[0004]本發明所要解決的技術問題是如何高效、簡便地實現上述多服務間的異步進度控制。
[0005]為了解決上述技術問題本發明提供一種基於Zook^per的多服務間異步進度控制的方法,包括,新建一個節點;多個服務分別在Zookeeper上註冊觀察所述新建的節點的監聽;當總任務開始後,在所述新建的節點上寫入包括當前需要處理的子任務和處理該子任務的服務的相關信息;所述多個服務通過監聽獲取所述相關信息;每個服務根據所述相關信息進行處理;當所有子任務處理完畢,則總任務結束。
[0006]根據本發明的一個方面,提供一種基於Zookeeper的多服務間異步進度控制的方法,包括步驟:
[0007]S1、新建一個節點;
[0008]S2、多個服務分別在Zook^per上註冊觀察所述新建的節點的監聽;
[0009]S3、當總任務開始後,在所述新建的節點上寫入包括當前需要處理的子任務和處理該子任務的服務的相關信息;
[0010]S4、所述多個服務通過監聽獲取所述相關信息;
[0011]S5、每個服務根據所述相關信息進行處理;
[0012]S6、當所有子任務處理完畢,則總任務結束。[0013]在上述方法中,所述每個服務根據所述相關信息進行處理包括步驟:
[0014]在上述方法中,判斷所述相關信息中的子任務是否為自己的子任務,如果不是則忽略所述相關信息;
[0015]在上述方法中,如果是,則開始處理所述子任務;
[0016]在上述方法中,處理完畢後,在所述新建節點中寫入新的包括當前需要處理的子任務和處理該子任務的服務的相關信息。
[0017]在上述方法中,所述步驟S6具體包括:當所有子任務處理完畢,刪除所述新建的節點,所述多個服務通過監聽獲知所述新建的節點被刪除,總任務結束。
[0018]根據本發明的另一個方面,提供一種基於Zook^per的多服務間異步進度控制的系統,包括:
[0019]節點控制單元,用於新建和刪除節點;
[0020]任務控制單元,用於寫入包括當前需要處理的子任務和處理該子任務的服務的相關信息;
[0021]處理單元,用於處理所述子任務;
[0022]註冊單元,用於註冊觀察新建節點的監聽;
[0023]獲取單元,用於通過監聽獲取所述相關信息和節點的建立和刪除信息。
[0024]在上述系統中,多個服 務通過註冊單元分別在Zookeeper上註冊觀察所述新建節點的監聽。
[0025]在上述系統中,當總任務開始後,通過所述任務控制單元在所述新建節點上寫入包括當前需要處理的子任務和處理該子任務的服務的相關信息。
[0026]在上述系統中,所述多個服務通過所述獲取單元獲取所述相關信息。
[0027]在上述系統中,所述多個服務中的各服務通過所述處理單元判斷所述相關信息中的子任務是否為自己的子任務,如果不是則忽略所述相關信息。
[0028]在上述系統中,所述多個服務中的各服務通過所述處理單元處理各自的所述子任務。
[0029]在上述系統中,當前所述子任務處理完畢後,處理當前所述子任務的服務通過所述任務控制單元在所述新建節點中寫入新的包括當前需要處理的子任務和處理該子任務的服務的相關信息。
[0030]在上述系統中,當所有子任務處理完畢後,通過所述節點控制單元刪除所述新建節點。
[0031]在上述系統中,當所述多個服務通過所述獲取單元獲知所述新建節點被刪除時,總任務結束。
[0032]本發明的有益效果是:通過本發明提供的方法和系統,能夠高效、簡便地實現多服務間的異步進度控制。
【專利附圖】

【附圖說明】
[0033]圖1是本發明實施例提供的基於Zookeeper的多服務間異步進度控制的方法的處理流程圖;
[0034]圖2是本發明實施例提供的基於Zookeeper的多服務間異步進度控制的系統的結構框圖;
【具體實施方式】
[0035]為使本發明的目的、技術方案和優點更加清楚明了,下面結合【具體實施方式】並參照附圖,對本發明進一步詳細說明。應該理解,這些描述只是示例性的,而並非要限制本發明的範圍。此外,在以下說明中,省略了對公知結構和技術的描述,以避免不必要地混淆本發明的概念。
[0036]本發明實施例提供的基於Zooke^er的多服務間異步進度控制的方法的處理流程如圖1所示,其中Zookeeper是一個分布式的,開放源碼的分布式應用程式協調服務。在Zookeeper中,znode是一個跟Unix文件系統路徑相似的節點,可以往這個節點存儲或從中獲取數據。
[0037]本發明實施例提供的基於Zookeeper的多服務間異步進度控制的方法具體步驟如下:
[0038]101、新建一個節點。
[0039]新建一個節點,如Nodel,這個節點中可以存儲數據,並可從該節點中獲取存儲的數據。
[0040]102、多個服務分別在Zookeeper上註冊觀察新建的節點的監聽。
[0041]以多服務A、B、C為例,服務A,B, C分別在Zooke^er上註冊觀察所述新建Nodel的監聽Watcher,即在Zookeeper上註冊Watch Nodel的事件處理函數;
[0042]103、當總任務開始後,在所述新建的節點上寫入包括當前需要處理的子任務和處理該子任務的服務的相關信息。
[0043]當總任務開始後,所述新建的Nodel上寫入包括當前需要處理的子任務和處理該子任務的服務的相關信息,如:{ 「服務A」,「子任務I」 }。
[0044]104、多個服務通過監聽獲取所述相關信息。
[0045]服務A, B, C通過Watcher獲取Nodel的內容;
[0046]105、每個服務根據所述相關信息進行處理。
[0047]每個服務根據所述相關信息進行處理,即服務A發現輪到自己處理了,就開始處理「子任務1」,服務B和C發現不是自己的子任務,忽略該信息;服務A處理完畢後,在Nodel中把包括當前需要處理的子任務和處理該子任務的服務的相關信息{ 「服務B」,「子任務2」}寫入;服務B處理完「子任務2」後,在Nodel中寫入{ 「服務C」,「子任務3」 };
[0048]106、當所有子任務處理完畢後,刪除所述新建的節點。
[0049]服務C處理完「子任務3」,則所有子任務處理已經完畢,此時刪除Nodel,總任務結束。因服務A、B、C都會激發事件處理函數,發現Nodel刪除了,就都知道總任務完成了。
[0050]綜上,本發明實施例通過新建一個Node,當總任務開始後,Zookeeper在所述新建Node上寫入包括當前需要處理的子任務和處理該子任務的服務的相關信息,每個服務根據所述相關信息進行處理,完成總任務,使得能夠高效、簡便地實現多服務間的異步進度控制。
[0051]本發明實施例提供的基於Zooke印er的多服務間異步進度控制的系統的結構框圖如圖2所示,該系統包括:[0052]節點控制單元201,用於新建和刪除節點;
[0053]任務控制單元202,用於寫入包括當前需要處理的子任務和處理該子任務的服務的相關信息;
[0054]處理單元203,用於處理所述子任務;
[0055]註冊單元204,用於 註冊觀察新建節點的監聽;
[0056]獲取單元205,用於通過監聽獲取相關信息和節點的建立和刪除信息。
[0057]以多服務A、B、C為例,Zookeeper通過節點控制單兀201新建Nodel。
[0058]服務A, B, C通過註冊單元204分別在Zookeeper上註冊觀察Nodel的Watcher,即在Zookeeper上註冊Watch Nodel的事件處理函數。
[0059]當總任務開始後,Zookeeper通過任務控制單元202在所述新建Nodel上寫入包括當前需要處理的子任務和處理該子任務的服務的相關信息,如:{ 「服務A」,「子任務I」}。
[0060]服務A,B, C通過獲取單元205獲取所述相關信息。
[0061]每個服務根據所述相關信息進行處理,即服務A通過處理單元203判斷是否輪到自己處理了,就通過處理單元203開始處理「子任務I 」,服務B和C通過處理單元203發現不是自己的子任務,忽略該信息。
[0062]服務A處理完畢後,通過任務控制單元202在所述新建Nodel中寫入新的包括當前需要處理的子任務和處理該子任務的服務的相關信息:{ 「服務B」,「子任務2」 }。
[0063]服務B通過處理單元203處理「子任務2」並在處理完後,在Nodel中寫入{ 「服務C」,「子任務3」};
[0064]服務C通過處理單元203處理「子任務3」,當所有子任務處理完畢後,通過節點控制單元201刪除所述Nodel。
[0065]服務A,B, C通過獲取單元205獲知所述Nodel被刪除,總任務結束。
[0066]綜上,本發明實施例通過實施例提供的基於Zook^per的多服務間異步進度控制的系統,通過節點控制單元201、任務控制單元202、處理單元203、註冊單元204和獲取單元205,實現新建一個Node,當總任務開始後,Zookeeper在所述新建Node上寫入包括當前需要處理的子任務和處理該子任務的服務的相關信息;每個服務根據所述相關信息進行處理,完成總任務,使得能夠高效、簡便地實現多服務間的異步進度控制。
[0067]應當理解的是,本發明的上述【具體實施方式】僅僅用於示例性說明或解釋本發明的原理,而不構成對本發明的限制。因此,在不偏離本發明的精神和範圍的情況下所做的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。此外,本發明所附權利要求旨在涵蓋落入所附權利要求範圍和邊界、或者這種範圍和邊界的等同形式內的全部變化和修改例。
【權利要求】
1.一種基於Zookeeper的多服務間異步進度控制的方法,其特徵在於:包括步驟: S1、新建一個節點; S2、多個服務分別在Zooke^er上註冊觀察所述新建的節點的監聽; S3、當總任務開始後,在所述新建的節點上寫入包括當前需要處理的子任務和處理該子任務的服務的相關信息; S4、所述多個服務通過監聽獲取所述相關信息; S5、每個服務根據所述相關信息進行處理; S6、當所有子任務處理完畢,則總任務結束。
2.根據權利要求1所述的方法,其特徵在於:步驟S5中,所述每個服務根據所述相關信息進行處理包括步驟: S501、判斷所述相關信息中的子任務是否為自己的子任務,如果不是則忽略所述相關信息; S502、如果是,則開始處理所述子任務; S503、處理完畢後,在所述新建節點中寫入新的包括當前需要處理的子任務和處理該子任務的服務的相關信息。
3.根據權利要求1所述的方法,其特徵在於:所述步驟S6具體包括:當所有子任務處理完畢,刪除所述新建的節點,所述多個服務通過監聽獲知所述新建的節點被刪除,總任務結束。
4.一種基於Zook^per的多服務間異步進度控制的系統,其特徵在於,包括: 節點控制單元,用於新建和刪除節點; 任務控制單元,用於寫入包括當前需要處理的子任務和處理該子任務的服務的相關信息; 處理單元,用於處理所述子任務; 註冊單元,用於註冊觀察新建節點的監聽; 獲取單元,用於通過監聽獲取所述相關信息和節點的建立和刪除信息。
5.根據權利要求4所述的系統,其特徵在於:多個服務通過註冊單元分別在Zookeeper上註冊觀察所述新建節點的監聽。
6.根據權利要求4所述的系統,其特徵在於:當總任務開始後,通過所述任務控制單元在所述新建節點上寫入包括當前需要處理的子任務和處理該子任務的服務的相關信息。
7.根據權利要求5所述的系統,其特徵在於:所述多個服務通過所述獲取單元獲取所述相關信息。
8.根據權利要求7所述的系統,其特徵在於:所述多個服務中的各服務通過所述處理單元判斷所述相關信息中的子任務是否為自己的子任務,如果不是則忽略所述相關信息。
9.根據權利要求8所述的系統,其特徵在於:所述多個服務中的各服務通過所述處理單元處理各自的所述子任務。
10.根據權利要求9所述的系統,其特徵在於:當前所述子任務處理完畢後,處理當前所述子任務的服務通過所述任務控制單元在所述新建節點中寫入新的包括當前需要處理的子任務和處理該子任務的服務的相關信息。
11.根據權利要求10所述的系統,其特徵在於:當所有子任務處理完畢後,通過所述節點控制單元刪除所述新建節點。
12.根據權利要求11所述的系統,其特徵在於:當所述多個服務通過所述獲取單元獲知所述新建 節點被刪除時,總任務結束。
【文檔編號】H04L29/08GK103577255SQ201310522126
【公開日】2014年2月12日 申請日期:2013年10月29日 優先權日:2013年10月29日
【發明者】徐安 申請人:漢柏科技有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀