集群服務(wù)器控制方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及互聯(lián)網(wǎng)應(yīng)用技術(shù)領(lǐng)域,具體地說,涉及一種集群服務(wù)器控制方法及系統(tǒng)。
【背景技術(shù)】
[0002]當前,云計算和智能集群已經(jīng)成為當前最重要的計算架構(gòu)之一。無論是云計算中的云還是智能集群中的集群都是由一些具有運算能力的成員構(gòu)成,這些成員的計算能力可能由單獨的物理設(shè)備提供,也可能是基于虛擬機、虛擬化等技術(shù)運行在物理設(shè)備上的一些邏輯節(jié)點。云計算和智能集群的特點是高度的動態(tài)性,其中一個最重要的部分是集群成員動態(tài)的增加、刪除。傳統(tǒng)的方式,集群都是通過靜態(tài)的配置,進行成員的分配,集群的構(gòu)成靜態(tài),如果需要增加、刪除成員需要通過重新配置集群,集群成員的變更不夠靈活。目前流行一些基于組播和點對點技術(shù)的動態(tài)集群維護方案,涉及到的通信技術(shù)繁瑣復(fù)雜,維護和配置的復(fù)雜性較高,對于大型的集群結(jié)構(gòu)穩(wěn)定性很難保證。集群構(gòu)成的靜態(tài)配置不能滿足高度動態(tài)的計算環(huán)境的要求,而通過組播和點對點等技術(shù)維護的動態(tài)集群架構(gòu)過于復(fù)雜。
[0003]特別是,由于云服務(wù)器的特殊需要,需要服務(wù)在不可用的時候?qū)⒉豢捎玫募撼蓡T服務(wù)器節(jié)點摘除,其中不可用的原因可能是崩潰、維護、升級等,所以服務(wù)器集群需要一套完善的全自動上線下線策略,以通知集群服務(wù)器最新的可用服務(wù)器列表。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本申請所要解決的技術(shù)問題是提供了一種集群服務(wù)器控制方法及系統(tǒng),能夠在服務(wù)器上線或下線時,及時將可用的服務(wù)器更新到最新的服務(wù)器列表,并將不可用的服務(wù)器從服務(wù)器列表中刪除,整個過程中,服務(wù)器隨著運維活動自動處理,無需人工干預(yù)。
[0005]為了解決上述技術(shù)問題,本申請有如下技術(shù)方案:
[0006]本發(fā)明提供一種集群服務(wù)器控制方法,其特征在于,包括:
[0007]GateServer向zookeeper發(fā)出請求,要求其監(jiān)控集群中各成員服務(wù)器上線或下線的狀態(tài)變化;
[0008]集群中的成員服務(wù)器啟動時,主動向zookeeper進行注冊,并在zookeeper中形成注冊列表;zookeeper將成員服務(wù)器的狀態(tài)變化通知GateServer,并在GateServer中形成服務(wù)器列表;
[0009]集群中的成員服務(wù)器停止工作時,zookeeper主動將停止工作的成員服務(wù)器從其注冊列表中刪除,并通知GateServer進行服務(wù)器列表更新;
[0010]客戶端啟動時,向GateServer請求最新的服務(wù)器列表。
[0011]優(yōu)選地,其中,客戶端訪問集群中成員服務(wù)器的請求連續(xù)失敗預(yù)設(shè)次數(shù)η次時,客戶端重新通過GateServer獲取最新的可用的服務(wù)器列表。
[0012]優(yōu)選地,其中,所述預(yù)設(shè)次數(shù)η為3
[0013]優(yōu)選地,其中,集群中的成員服務(wù)器對集群中的其他成員服務(wù)器進行訪問時,先從zookeeper獲取服務(wù)器的注冊列表,再進行訪問請求。
[0014]優(yōu)選地,其中,所述GateServer無需監(jiān)控已注冊到zookeeper的且不對外提供服務(wù)的成員服務(wù)器的狀態(tài)變化。
[0015]本發(fā)明還提供一種集群服務(wù)器控制系統(tǒng),其特征在于,包括GateServer、zookeeper、至少一個成員服務(wù)器、以及至少一個客戶端,
[0016]所述GateServer,用于向zookeeper發(fā)出請求,要求其監(jiān)控集群中各成員服務(wù)器上線或下線的狀態(tài)變化,形成服務(wù)器列表;并用于在收到zookeeper提供的成員服務(wù)器狀態(tài)變化的通知時,更新其服務(wù)器列表;
[0017]所述zooke印er,用于監(jiān)控集群中各成員服務(wù)器的上線或下線的狀態(tài)變化,在成員服務(wù)器啟動時,對成員服務(wù)器進行注冊,形成成員服務(wù)器的注冊列表;在成員服務(wù)器停止工作時,主動將停止工作的成員服務(wù)器從其注冊列表中刪除;并用于向GateServer通知所述成員服務(wù)器的狀態(tài)變化;
[0018]所述至少一個成員服務(wù)器,用于在啟動時,主動向zookeeper進行注冊;
[0019]所述至少一個客戶端,用于在啟動時,向GateServer請求最新的服務(wù)器列表。
[0020]優(yōu)選地,其中,所述至少一個客戶端還用于在對集群中成員服務(wù)器的訪問請求連續(xù)失敗預(yù)設(shè)次數(shù)η次時,重新通過GateServer獲取最新的可用的服務(wù)器列表。
[0021]優(yōu)選地,其中,所述預(yù)設(shè)次數(shù)η為3。
[0022]優(yōu)選地,其中,所述至少一個成員服務(wù)器還用于在對集群中的其它成員服務(wù)器進行訪問時,先從zookeeper獲取服務(wù)器的注冊列表,再進行訪問請求。
[0023]優(yōu)選地,其中,所述GateServer無需監(jiān)控已注冊到zookeeper的且不對外提供服務(wù)的成員服務(wù)器的狀態(tài)變化。
[0024]與現(xiàn)有技術(shù)相比,本申請所述的方法及系統(tǒng),達到了如下效果:
[0025]第一,利用本發(fā)明的集群服務(wù)器控制方法及系統(tǒng),當服務(wù)器集群中的成員服務(wù)器進入維護狀態(tài)的時候,會自動地從整個服務(wù)器集群中下線,不再提供服務(wù);當成員服務(wù)器啟動的時候,該成員服務(wù)器會自動注冊到服務(wù)器集群中并能夠立即提供服務(wù),從而使得整個服務(wù)器集群正常運作。
[0026]第二,利用本發(fā)明的集群服務(wù)器控制方法及系統(tǒng),當服務(wù)器集群中的成員服務(wù)器異常下線時(程序崩潰、系統(tǒng)崩潰、斷電、系統(tǒng)維護升級等),服務(wù)器集群中的zookeeper能夠及時感知,并能夠通知GateServer進行服務(wù)器更新。
[0027]第三,利用本發(fā)明的集群服務(wù)器控制方法及系統(tǒng),當集群中的成員服務(wù)器上線或下線時,能夠及時將可用的服務(wù)器更新到最新的服務(wù)器列表中,并將不可用的服務(wù)器從服務(wù)器列表中刪除,整個過程中,服務(wù)器隨著運維活動自動處理,無需人工干預(yù)。
【附圖說明】
[0028]此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當限定。在附圖中:
[0029]圖1為本發(fā)明的所述一種集群服務(wù)器控制方法流程圖;
[0030]圖2為本發(fā)明的所述一種集群服務(wù)器控制系統(tǒng)的構(gòu)成示意圖。
【具體實施方式】
[0031]如在說明書及權(quán)利要求當中使用了某些詞匯來指稱特定組件。本領(lǐng)域技術(shù)人員應(yīng)可理解,硬件制造商可能會用不同名詞來稱呼同一個組件。本說明書及權(quán)利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準則。如在通篇說明書及權(quán)利要求當中所提及的“包含”為一開放式用語,故應(yīng)解釋成“包含但不限定于”。“大致”是指在可接收的誤差范圍內(nèi),本領(lǐng)域技術(shù)人員能夠在一定誤差范圍內(nèi)解決所述技術(shù)問題,基本達到所述技術(shù)效果。此外,“耦接”一詞在此包含任何直接及間接的電性耦接手段。因此,若文中描述一第一裝置耦接于一第二裝置,則代表所述第一裝置可直接電性耦接于所述第二裝置,或通過其他裝置或耦接手段間接地電性耦接至所述第二裝置。說明書后續(xù)描述為實施本申請的較佳實施方式,然所述描述乃以說明本申請的一般原則為目的,并非用以限定本申請的范圍。本申請的保護范圍當視所附權(quán)利要求所界定者為準。
[0032]實施例1
[0033]參見圖1所示為本申請所述一種集群服務(wù)器控制方法的具體實施例,本實施例中所述方法包括以下步驟:
[0034]步驟101、GateServer (網(wǎng)關(guān)服務(wù)器)向zookeeper發(fā)出請求,要求其監(jiān)控集群中各成員服務(wù)器上線或下線的狀態(tài)變化;
[0035]步驟102、集群中的成員服務(wù)器啟動時(例如圖2所示的第一成員服務(wù)器31和第二成員服務(wù)器32),主動向zookeeper進行注冊,并在zookeeper中形成注冊列表;zookeeper將成員服務(wù)器的狀態(tài)變化通知GateServer,并在GateServer中形成服務(wù)器列表;
[0036]步驟103、集群中的成員服務(wù)器停止工作時(例如圖2所示的第三成員服務(wù)器33),zookeeper主動將停止工作的成員服務(wù)器從其注冊列表中刪除,并通知GateServer進行服務(wù)器列表更新;
[0037]步驟104、客戶端啟動時,向GateServer請求最新的服務(wù)器列表。
[0038]上述方案中,當集群中成員服務(wù)器的狀態(tài)發(fā)生變化時,zookeeper均能夠及時感知并通知GateServer,有成員服務(wù)器上線時,會自動在zookeeper進行注冊,形成注冊列表;有成員服務(wù)器由于崩潰、維護或升級等原因停止工作時,zookeeper會及時將停止工作的服務(wù)器從其注冊列表中刪除。GateServer從zookeeper獲取成員服務(wù)器的最新狀態(tài),并及時將其服務(wù)器列表更新。當有客戶端啟動時,客戶端能夠向Gate獲取到最新的服務(wù)器列表。整個過程隨著運維活動自動處理,使得服務(wù)器集群具備了一套完善的全自動上線下線策略,無需人工干預(yù)。
[0039]上述步驟104中,客戶端訪問集群中成員服務(wù)器的請求連續(xù)失敗預(yù)設(shè)次數(shù)η次時,客戶端重新通過GateServer獲取最新的可用的服務(wù)器列表。
[0040]通常,客戶端會通過GateServer獲取當前可用的服務(wù)器列表,根據(jù)需求來向?qū)?yīng)的服務(wù)器發(fā)起訪問請求,如果某個服務(wù)器在此過程中發(fā)生了崩潰或是進入維護狀態(tài)(例如圖2所示的第三服務(wù)器33),那么客戶端將不會及時得知服務(wù)器的狀態(tài),該客戶端會表現(xiàn)出目標服務(wù)器無法連接。因此,本發(fā)明設(shè)計了上述新客戶端更新服務(wù)器列表的策略,如果客戶端訪問集群中某個