本發(fā)明涉及一種分布式系統(tǒng)無效節(jié)點判定方法。
背景技術:
分布式系統(tǒng)(Distributed System)有很多不同的定義,一般認為:“一個分布式系統(tǒng)是一些獨立的計算機集合,但是對這個系統(tǒng)的用戶來說,系統(tǒng)就像一臺計算機一樣”。這個定義有兩方面的含義:第一,從硬件角度來講,每臺計算機都是自主的;第二,從軟件角度來講,用戶將整個系統(tǒng)看做是一臺計算機。這兩者都是必需的,缺一不可。在一個分布式系統(tǒng)中,一組獨立的計算機節(jié)點展現(xiàn)給用戶的是一個統(tǒng)一的整體,系統(tǒng)擁有多種通用的物理和邏輯資源,可以動態(tài)地分配任務,分散的物理和邏輯資源通過計算機網絡實現(xiàn)信息交換。主頻可達到GHZ的功能強大的微處理器的開發(fā)和高速計算機網絡的出現(xiàn)是分布式系統(tǒng)的產生的基礎。
分布式系統(tǒng)通常由一個管理節(jié)點與多個工作節(jié)點組成,節(jié)點管理是分布式系統(tǒng)系統(tǒng)管理的核心功能之一。管理節(jié)點的系統(tǒng)管理進程實時對工作節(jié)點的狀態(tài)進行監(jiān)督,判斷工作節(jié)點能否正常工作,將其加入或排除出系統(tǒng)。由于節(jié)點自身運行狀態(tài)和網絡傳輸的可靠性等問題(例如報文只能單向傳輸),異常的工作節(jié)點給系統(tǒng)帶來眾多不確定性問題,如數據不一致、返回超時等,快速準確的節(jié)點管理策略已成為系統(tǒng)管理的難點問題。
技術實現(xiàn)要素:
本發(fā)明的目的,在于提供一種分布式系統(tǒng)無效節(jié)點判定方法,其可達到更加精準判定節(jié)點狀態(tài)的目標。
為了達成上述目的,本發(fā)明的解決方案是:
一種分布式系統(tǒng)無效節(jié)點判定方法,包括如下內容:
(1)各節(jié)點的進程啟動時在網絡中間件中注冊信息,退出時清理注冊信息,網絡中間件之間實時同步本節(jié)點的進程狀態(tài)信息;
(2)各節(jié)點的系統(tǒng)管理進程定時發(fā)送系統(tǒng)管理平安報文,由管理節(jié)點的系統(tǒng)管理進程接收并進行節(jié)點狀態(tài)更新;
(3)管理節(jié)點的系統(tǒng)管理進程對工作節(jié)點依次進行狀態(tài)檢測,判定節(jié)點是否正常工作,對于無法正常工作的節(jié)點進行退出處理。
上述內容(1)中,當節(jié)點退出時,主動注銷或被動由網絡中間件清理注冊信息。
上述內容(1)中,網絡中間件之間通過網絡平安報文實時同步本節(jié)點的進程狀態(tài)信息,并為上層系統(tǒng)管理模塊提供查詢接口。
上述網絡平安報文包括整體平安報文和變化平安報文,整體平安報文周期性發(fā)送,記錄了本節(jié)點的所有注冊引用進程信息;變化平安報文在本節(jié)點注冊應用程序變化的時候發(fā)送。
上述內容(2)中,當系統(tǒng)管理平安報文出現(xiàn)超時,管理節(jié)點的系統(tǒng)管理進程向目標節(jié)點的系統(tǒng)管理進程主動請求應答,進行進一步確認。
上述內容(3)的詳細內容是:管理節(jié)點的系統(tǒng)管理程序通過網絡中間件訪問接口檢查對方節(jié)點管理進程是否在線:如不在線,再對節(jié)點的投運狀態(tài)進行判斷,對于未投運的節(jié)點直接判斷該節(jié)點為故障,做節(jié)點退出處理;對于投運的節(jié)點進行進一步故障計數,超過閾值判斷節(jié)點故障,做節(jié)點退出處理;如在線,則驗證系統(tǒng)管理平安報文是否超時,如超時則請求對方發(fā)送系統(tǒng)管理平安報文,若在更長一些的時間段內仍然還收不到,則判斷該節(jié)點為故障,做節(jié)點退出處理;如不超時說明一切正常,將故障計數清零。
采用上述方案后,本發(fā)明采用基于網絡中間件同步信息和系統(tǒng)管理通訊狀態(tài)的綜合判定方法,管理節(jié)點的系統(tǒng)管理進程定期對工作節(jié)點的狀態(tài)進行維護,通過綜合網絡中間件同步的進程狀態(tài)信息與管理進程間通訊狀態(tài)信息,判定節(jié)點是否正常工作,使得管理節(jié)點可以準確判斷工作節(jié)點是否處于正常工作狀態(tài),及時將異常節(jié)點退出系統(tǒng)操作,達到保證系統(tǒng)可靠性與可用性的效果。
附圖說明
圖1是本發(fā)明中分布式系統(tǒng)的層次結構圖;
圖2是本發(fā)明網絡中間件間信息同步示意圖;
圖3是本發(fā)明工作節(jié)點狀態(tài)維護流程圖。
具體實施方式
以下將結合附圖,對本發(fā)明的技術方案及有益效果進行詳細說明。
首先,對本發(fā)明涉及的分布式系統(tǒng)的架構進行說明,如圖1所示,自底向上依次是網絡層、應用層和系統(tǒng)管理層。其中,網絡層屏蔽操作系統(tǒng)差異,對上統(tǒng)一提供網絡服務;應用層負責處理具體的應用事務;系統(tǒng)管理層利用網絡層對應用服務、網絡節(jié)點等進行管理。
本發(fā)明提供一種分布式系統(tǒng)無效節(jié)點判定方法,包括網絡中間件間的信息同步技術,系統(tǒng)管理平安報文和探測技術,以及基于這兩項技術的工作節(jié)點狀態(tài)判定策略,下面分別介紹。
第一,網絡中間件進程注冊信息同步功能
節(jié)點內部應用進程啟動時需要在網絡中間件中注冊進程信息,退出時主動注銷或被動由網絡中間件清理注冊信息。網絡中間件之間實時同步本節(jié)點的進程狀態(tài)信息,并為上層系統(tǒng)管理模塊提供查詢接口,系統(tǒng)管理模塊可以實時獲得系統(tǒng)內任意節(jié)點及進程的當前狀態(tài)。如圖2所示,網絡中間件之間通過平安報文維持各節(jié)點中的注冊應用進程信息的同步,網絡平安報文包括整體平安報文和變化平安報文。
整體平安報文周期性發(fā)送,記錄了本節(jié)點的所有注冊引用進程信息。發(fā)送整體平安報文的目的是為了讓新加入的節(jié)點能很快知道本節(jié)點的注冊應用進程信息,同時不至于因為丟包而使各個節(jié)點上保存的注冊應用信息不一致。定時發(fā)送的報文都是整體平安報文。
變化平安報文在本節(jié)點注冊應用程序變化的時候發(fā)送。注冊應用進程變化是指本節(jié)點有新的應用程序注冊、本節(jié)點有應用進程注銷、本節(jié)點有應用進程的事件訂閱信息發(fā)生了變化。
通過平安報文維持各節(jié)點中的注冊應用進程信息的同步的內容包括:節(jié)點狀態(tài)信息、應用進程信息以及注冊事件信息,如下所示:
1)節(jié)點信息包括:現(xiàn)場名、節(jié)點名、節(jié)點IP、節(jié)點組號、節(jié)點狀態(tài)、鏈路連接信息等。
2)應用進程信息包括:進程編號、進程注冊信息(現(xiàn)場名、節(jié)點名、進程注冊名);
3)注冊事件信息包括:事件數量、注冊事件號、事件屏蔽碼等。
第二,系統(tǒng)管理平安報文及探測機制
分布式系統(tǒng)內各節(jié)點的系統(tǒng)管理進程定時發(fā)送系統(tǒng)管理平安報文(可設定為約30秒發(fā)送一次),系統(tǒng)管理平安報文由管理節(jié)點的系統(tǒng)管理進程接收并進行節(jié)點狀態(tài)更新,用于維護系統(tǒng)管理間通訊狀態(tài)。系統(tǒng)管理平安報文用于報告當前節(jié)點系統(tǒng)管理進程狀態(tài),內容包括:報文進程類型標識、報文類型以及時標等。
當系統(tǒng)管理平安報文出現(xiàn)超時,通過主動請求應答的探測技術對目標節(jié)點系統(tǒng)管理工作狀態(tài)進行進一步確認。
第三,工作節(jié)點狀態(tài)判定策略
管理節(jié)點的系統(tǒng)管理進程對工作節(jié)點依次進行狀態(tài)檢測,如圖3所示,具體流程如下所示:
管理節(jié)點的系統(tǒng)管理程序通過網絡中間件訪問接口檢查對方節(jié)點管理進程是否在線:
1)不在線,說明當前已無法通過網絡中間件訪問到目標節(jié)點,為了避免網絡抖動造成誤判,還對節(jié)點的投運狀態(tài)進行判斷:
a)未投運,說明節(jié)點前狀態(tài)已經是離線,直接判斷該節(jié)點為故障,做節(jié)點退出處理;
b)已投運,說明節(jié)點在稍早前的一段時間內還是處于正常運行的狀態(tài),為了避免網絡抖動造成誤判,在此增加故障計數驗證,當前故障計數加1,且如果計數超過閾值判斷節(jié)點故障,做節(jié)點退出處理。
2)在線,說明可以通過網絡中間件訪問到目標節(jié)點,但為了避免網絡單向傳輸或不穩(wěn)定的故障,還需要進一步驗證系統(tǒng)管理平安報文的狀態(tài),驗證目標節(jié)點系統(tǒng)管理平安報文是否超時:
a)超時,請求對方發(fā)送平安報文,若在更長一些的時間段內仍然還收不到,則判斷該節(jié)點為故障,做節(jié)點退出處理;
b)不超時,說明一切正常,將故障計數清零。
以上實施例僅為說明本發(fā)明的技術思想,不能以此限定本發(fā)明的保護范圍,凡是按照本發(fā)明提出的技術思想,在技術方案基礎上所做的任何改動,均落入本發(fā)明保護范圍之內。