對等網絡中節點集群實現方法、裝置及系統的制作方法
【技術領域】
[0001]本發明涉及網絡技術領域,尤其涉及一種對等網絡中節點集群實現方法、裝置及系統。
【背景技術】
[0002]傳統的網絡(web)產品在實現分布式部署(又稱集群部署)時,一般采用以下兩種部署過程:
[0003]第一種集群部署過程如下:
[0004]首先,安裝并啟動主節點;
[0005]其次,依次安裝并啟動從節點,并在安裝從節點時,在從節點上配置主節點的相關信息,例如,主節點的網絡協議(IP)地址、端口號等。
[0006]第二種集群部署過程如下:
[0007]依次安裝各個節點,在全部安裝完成后,人為指定一個節點作為主節點,并修改各個從節點的配置文件,或者是通過各個從節點的配置界面進行相關設置,重啟各從節點。
[0008]由此可見,現有的集群部署過程中,需要人為指定主節點和從節點,并且需要手動配置或修改主節點和從節點的配置信息。
[0009]并且,一旦主節點出現故障被掛起,所有的從節點將無法正常進行狀態和數據的同步,導致所有節點的應用程序無法正常工作。
[0010]因此,如何實現對等網絡集群部署時主節點的自動推舉,降低集群部署的實現復雜度,提高集群部署的運行效率,成為有待解決的問題。
【發明內容】
[0011]本發明提供一種對等網絡中節點集群實現方法、裝置及系統,用以實現對等網絡集群部署時主節點的自動推舉,降低集群部署的復雜度,提高集群部署的效率。
[0012]本發明實施例提供的具體技術方案如下:
[0013]一種對等網絡中節點集群實現方法,所述集群中的各節點運行于至少一個服務器上,包括:
[0014]集群中的任意節點獲取具有相同的集群標識的各節點的狀態信息,所述狀態信息包括節點的標識和性能參數;
[0015]根據獲取的各節點的性能參數以及自身的性能參數確定主節點。
[0016]一種對等網絡中節點集群實現裝置,包括:
[0017]獲取模塊,用于獲取具有相同的集群標識的各節點的狀態信息,所述狀態信息包括節點的標識和性能參數;
[0018]確定模塊,用于根據獲取的各節點的性能參數以及自身的性能參數確定主節點。
[0019]一種對等網絡中節點集群系統,包括:一個以上運行于至少一個服務器上的節占.
[0020]任一節點,用于獲取具有相同的集群標識的各節點的狀態信息,所述狀態信息包括節點的標識和性能參數,根據獲取的各節點的性能參數以及自身的性能參數確定主節占.[0021 ] 其它各節點,用于向所述節點發送自身的狀態信息。
[0022]基于上述技術方案,本發明實施例中,集群中任意一節點獲取同一集群中的其它各節點的標識及其性能參數,根據獲取的各節點的性能參數以及自身的性能參數確定主節點,從而能夠實現對等網絡集群部署時主節點的自動推舉,降低集群部署的復雜度,提高集群部署的效率。
【附圖說明】
[0023]圖1為本發明實施例中集群實現的方法流程示意圖;
[0024]圖2a為本發明實施例中單節點的搜索系統示意圖;
[0025]圖2b為本發明實施例中加入一個節點的搜索系統示意圖;
[0026]圖2c為本發明實施例中加入多個節點的搜索系統示意圖;
[0027]圖2d為本發明實施例中從節點故障的搜索系統示意圖;
[0028]圖2e為本發明實施例中主節點故障的搜索系統示意圖;
[0029]圖3為本發明實施例中節點結構示意圖。
【具體實施方式】
[0030]為了實現對網絡集群部署時主節點的自動推舉,降低集群部署的復雜度,提高集群部署的效率,本發明實施例提供了一種對等網絡中節點集群實現方法、設備及系統。
[0031]下面結合附圖對本發明優選的實施方式進行詳細說明。
[0032]以下實施例中,集群中的各節點運行于至少一個服務器上,優選地,每個節點運行于一個獨立的服務器上。其中,若一個服務器上運行多個節點,則該多個節點對應的端口號各不相同。
[0033]以下實施例中,節點的動作實質為由該節點所運行的服務器執行。
[0034]其中,集群中每個節點具有唯一標識,集群中包含有一個主節點和若干從節點,本發明實施例中,除主節點外的各節點均為從節點,各節點均可提供相同的功能,以避免單點故障。
[0035]以下實施例中,集群中的各節點采用對等連接(Peer to Peer, P2P,也稱對等網絡),每個節點都具有相同的能力。
[0036]如附圖1所示,本發明實施例中,提供了一種對等網絡中節點集群實現方法,該集群部署實現方法的具體過程如下:
[0037]步驟101:集群中的任意節點獲取具有相同的集群標識的各節點的狀態信息,所述狀態信息包括節點的標識和性能參數。
[0038]本發明實施例中,每個節點在安裝時指定其所屬的集群,在該節點上設置所屬集群的集群標識。
[0039]一個具體實施中,獲取具有相同的集群標識的各節點的狀態信息,具體過程為:
[0040]節點發送攜帶有集群標識的第一廣播消息;并接收具有相同的集群標識的各節點返回的第一響應消息,該第一響應消息中攜帶有自身的標識以及性能參數。
[0041]優選地,集群中的各節點的IP地址屬于同一網段,以便于廣播消息。
[0042]步驟102:根據獲取的各節點的性能參數以及自身的性能參數確定主節點。
[0043]其中,主節點負責廣播集群中各節點的狀態信息、發現新加入的節點。
[0044]具體實施中,在集群中加入新的節點時,需要配置該節點的集群標識。
[0045]在一個具體實施中,集群中的任一節點根據獲取的各節點的性能參數以及自身的性能參數確定主節點后,還包括:
[0046]接收主節點按照設定周期發送的、攜帶集群標識的第二廣播消息;
[0047]確定第二廣播消息中攜帶的集群標識與自身的集群標識相同后,向主節點返回攜帶自身標識及性能參數的第二響應消息,由主節點根據第二響應消息建立節點列表,該節點列表中包括返回第二響應消息的各節點的標識及其性能參數;
[0048]以及接收主節點發送的攜帶節點列表的第三廣播消息,并在本地保存節點列表。
[0049]較佳地,第二響應消息中還包括節點的IP地址、端口號等。
[0050]較佳地,節點列表中還包括節點的IP地址、端口號、是否為主節點的指示信息、節點是否為可用狀態的指示信息、節點當前是否為可用狀態的指示信息的更新時間等。
[0051]優選地,以節點的網絡協議(IP)地址和端口號的組合作為節點的標識。
[0052]在一個較佳地實施中,主節點建立節點后,若發現新的節點加入該集群,對節點列表進行更新和維護,具體過程如下:
[0053]主節點按照設定周期發送攜帶集群標識的第二廣播消息;
[0054]在接收具有該集群標識的節點返回的攜帶自身標識及性能參數的第二響應消息后,確定本地保存的節點列表中不包括第二響應消息中攜帶的節點的標識時,將該第二響應消息中攜帶的節點的標識及其性能參數加入節點列表;
[0055]并發送攜帶更新后的節點列表的第三廣播消息,由各節點在接收該第三廣播消息后更新本地保存的節點列表。
[0056]在另一個較佳地實施中,主節點建立節點列表后,若發現節點故障,對節點列表進行維護,具體過程如下:
[0057]主節點按照設定周期發送攜帶集群標識的第二廣播消息;
[0058]在超過設定時長未接收到節點返回的第二響應消息時,在節點列表中增加該節點不可用的狀態標識;
[0059]并發送攜帶修改后的節點列表的第三廣播消息,由各節點在接收第三廣播消息后更新本地保存的節點列表。
[0060]其中,還可以是主節點按照設定周期發送攜帶集群標識的第二廣播消息,在連續超過設定次數未接收到某節點返回的第二響應消息時,初步確定該節點不可用。較佳地,在連續超過設定次數未接收到某節點返回的第二響應消息時,采用Socket通信向該節點發送驗證請求,如果超過設定時長未接收到響應,則確定該節點故障,處于不可用狀態。
[0061]其中,從節點在主節點故障時,推舉新的主節點。
[0062]在一個具體實施中,節點若在設定時長內未接收到主節點發送的消息,重新獲取具有相同的集群標識的其它各節點的狀態信息,以及根據重新獲取的各節點的性能參數以及自身的性能參數確定主節點。
[0063]其中,節點的性能參數可以是節點的點播響應時間,該響應時間越短,節點的性能越佳,將響應時間最短的節點推舉為主節點。在節點的性能參數相同,可隨機選擇一個節點作為主節點,也可以按照設定的規則選擇一個節點作為主節點。
[0064]例如,在節點的點播響應時間相同時,選擇標識較小的節點作為主節點。
[0065]在一個具體實施中,若集群僅有一個處于可用狀態的節點,則啟用單節點模式,即將該節點作為主節點。
[0066]優選地,在集群中有新的節點加入時,主節點按照設定周期發送攜帶集群標識的第二廣播消息,在接收該新的節點返回的攜帶自身標識及性能參數的第二響應消息時,還接收到該新的節點返回的指定為節點為主節點的指示信息,將主節點更新為新的節點;
[0067]或者是,比較當前的主節點和該新的節點的性能參數,若該新的節點的性能參數較優,則將主節點更新為新的節點,否則,維持當前的主節點不變。
[0068]具體實施中,主節點通過套接字(socket)通信,多線程并行掃描同一網段內指定端口下具有同一集群標識的節點,獲得最新節點狀態清單。其中,線程為程序中一個單一的順序控制流程,在單個程序中同時運行多個線程完成不同的工作,稱為多線程。
[0069]以下通過一個具體實施例對本發明實施例所提供的集群部署方法進行舉例說明。
[0070]該具體實施例以搜索應用集群的部署為例,具體部署過程如下:
[0071]如附圖2a所示,假設該集群僅有一個節點1,該節點I為主節點,即僅從該單一的節點返回搜索結果;
[0072]如附圖2b所示,節點I通過同一網段內廣