[發明專利]用于分布式系統的負載均衡及高可用性子系統及方法有效
| 申請號: | 201310441317.4 | 申請日: | 2013-09-25 |
| 公開(公告)號: | CN103457870A | 公開(公告)日: | 2013-12-18 |
| 發明(設計)人: | 鐘珞;曹東;柴澤楚;何雙江;賀茂強 | 申請(專利權)人: | 武漢理工大學;武漢日電光通信工業有限公司 |
| 主分類號: | H04L12/803 | 分類號: | H04L12/803;H04L29/08 |
| 代理公司: | 湖北武漢永嘉專利代理有限公司 42102 | 代理人: | 王丹 |
| 地址: | 430070 湖*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 分布式 系統 負載 均衡 可用性 子系統 方法 | ||
技術領域
本發明涉及分布式系統領域,尤其涉及一種用于分布式系統的負載均衡及高可用性子系統及方法。
背景技術
在大多數分布式系統中,都會涉及到大量用戶并發訪問某一個資源的情況,此時如果該資源集中在一臺服務器上,那么顯然這臺服務器將承受巨大的壓力。這種情況下這臺服務器的CPU、內存和I/O系統很快會達到性能上限,最終會成為系統的性能瓶頸。由于單臺服務器無論如何提升其硬件配置始終存在性能上限,如果用戶并發規模持續擴大,單臺服務器顯然無法滿足不斷擴大的并發規模。而只有采用服務器集群方式才能有效性根據并發規模動態調整集群規模,最終解決上述問題。
服務器集群是一個由多臺服務器組成的分布式系統,如果大量用戶并發訪問集群上的某一個資源,顯然這個資源是被分布在集群中的多臺機器上的,那么就會出現兩個問題。第一,如何將大量用戶并發進行分流,即負載均衡。第二,分布式系統中可能出現集群中的部分服務器無法繼續提供服務,而另一部分服務器能夠接替其工作,即高可用性。
其中一種方法所采用的實現方式是在服務端加上一個中央控制系統,即所有用戶并發請求均先分發到中央控制系統上,再由中央控制系統根據集群中各個服務器的動態權值和當前服務器的運行狀況進行分流。
如果采用上述處理方式就會存在以下問題。首先,由于所有用戶并發請求均先分發到中央控制系統上,那么中央控制系統可能出現性能瓶頸;其次,中央控制系統要處理大量并發計算動態權值,就需要用到動態權值的鎖同步等并發同步策略,會降低系統的并發能力,如果遇到所選服務器宕機需要重新同步計算;最后,無論分流過程開銷多么小,當大量并發存在的情況下都會導致用戶請求的執行時間較長,影響用戶體驗。
其中另一種方法是在服務端根據集群中服務器的權值設置,根據權值在中央控制系統中生成一個輪流執行各個服務器的排程表或者根據權值生成一個隨機執行各個服務器的排程表,這個排程表中包含了所有排程次序,通過排程表分流大量用戶的并發請求。
如果采用上述處理方式就會存在以下問題。首先,排程表是在中央控制系統中,也就是說中央控制系統需要協調各個客戶機請求的執行;其次,協調各個客戶機請求需要消耗中央控制系統的資源,可能導致瓶頸的出現;最后,當有服務器宕機或加入新的服務器時,排程表需要考慮前一次的排程情況來重新生成排程表。
發明內容
本發明要解決的技術問題是:提供一種用于分布式系統的負載均衡及高可用性子系統及方法,實現分布式系統的負載均衡和高可用性。
本發明為解決上述技術問題所采取的技術方案為:
用于分布式系統的負載均衡及高可用性子系統,其特征在于:它包括至少2個服務提供者模塊A30、注冊中心模塊A10和至少一個客戶端模塊A20;其中
每個服務提供者模塊A30包括服務注冊模塊A31、概率分布計算服務模塊A32、服務模塊A33和服務權值計算模塊A34;服務權值計算模塊A34用于服務提供者模塊啟動時計算服務提供者的服務能力,即服務權值;概率分布計算服務模塊A32用于在服務提供者注冊時,獲取當前時刻其它提供相同服務的服務提供者的信息,并計算此類服務的服務提供者概率分布;服務注冊模塊A31用于當服務提供者提供服務時向注冊中心模塊A10注冊;服務模塊A33用于提供服務;
注冊中心模塊A10包括統一命名服務模塊A11、消息通知服務模塊A12和服務提供者列表模塊A13;統一命名服務模塊A11用于在服務提供者注冊時,根據服務名生成一個集群內唯一的服務路徑供客戶端A20查找;服務提供者列表模塊A13用于存儲每個服務所對應的服務提供者列表和服務提供者概率分布;消息通知服務模塊A12用于在高可用性模塊A23重新選擇一個可用的服務提供者時,將對應的新服務提供者概率分布通知給所有客戶端模塊A20和所有服務提供者模塊A30;
客戶端模塊A20包括注冊中心連接器A21、負載均衡模塊A22、高可用性模塊A23和調用服務模塊A24;注冊中心連接器A21用于連接注冊中心模塊A10,根據所需要的服務依據統一命名服務模塊A11生成的服務路徑,從服務提供者列表模塊A13中獲得對應的服務提供者列表和服務提供者概率分布;負載均衡模塊A22用于根據服務提供者概率分布進行負載均衡計算,隨機選擇一個服務提供者;調用服務模塊A24用于在負載均衡模塊A22選擇的服務提供者可用時,調用對應服務提供者模塊A30的服務模塊A33;高可用性模塊A23用于在負載均衡模塊A22選擇的服務提供者不可用時,重新選擇一個可用的服務提供者,并重新計算此服務對應的新服務提供者概率分布。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢理工大學;武漢日電光通信工業有限公司,未經武漢理工大學;武漢日電光通信工業有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310441317.4/2.html,轉載請聲明來源鉆瓜專利網。





