彩巴巴彩票官网|91彩客彩票官网
歡迎來到學術參考發表網

基于消息總線的智能負載均衡技術的研究與實現

發布時間:2015-11-30 10:40

摘 要:在一個集群系統內隨著業務訪問規模不斷加大,并且訪問時間的密集性,導致應用服務器不堪重負,而傳統的負載均衡技術不能完全保證系統的正常可靠運行,本文基于Active MQ消息總線技術,提出并實現智能負載均衡,以實現整個集群均衡負載的最優化,提升業務系統運行的高性能與高可靠性。

關鍵詞:消息總線;負載均衡;集群;應用服務器
  隨著網絡中各個核心部分業務量的提高,訪問量和數據流量的快速增長,其處理能力和計算強度也相應地增大,使得單一的服務器設備根本無法承擔。在此情況下,采用負載均衡技術將負載(工作任務)進行平衡、分攤到多個操作單元上進行執行,例如應用服務器、數據庫服務器和其它關鍵任務服務器等,從而共同完成工作任務。對于一個穩定、強大的集群,一套優秀的均衡負載是必不可少的,在均衡負載的支持下,集群才有可能實現均衡壓力到CPU、I/O、內存和網絡的目的。
1、傳統的負載均衡  
  傳統的負載均衡系統,采取一臺專門的服務器作為負載均衡管理服務器,由該服務器對資源進行管理、調度和分配。這種解決方案,有如下三點缺陷和隱患:
  (1)系統繁忙時,負載均衡管理服務器將成為系統性能瓶頸;
  (2)如果負載均衡管理服務器出現異常甚至當機,將導致整個系統癱瘓;
  (3)集群增加或移除節點時配置復雜,需要對負載均衡管理服務器和變動的節點進行配置,配置過程中的不當操作還可能影響整個系統的運行。
2、 智能負載均衡
  針對傳統負載均衡存在的問題,設計一套智能化的負載均衡管理系統,使集群中的每臺服務器都能智能的監控到整個集群的情況,并根據這個情況來調整該服務器的工作、負載、角色和請求對象,就好像在一支優秀部隊里的一個優秀士兵一樣,他能夠根據連隊的情況和自身的情況來決定自己應該攻擊,隱蔽,撤退或者協助戰友。
  
  在智能負載均衡系統的支撐下,不需要專門的負載均衡管理服務器,每個集群節點自適應,能自主的安排自己的角色和服務,能夠在無主控節點的情況下工作;任何一個節點崩潰不會影響導致整個系統癱瘓;節點增加和移除只需要配置節點服務器即可,不會影響系統中其他節點正常的運行;系統中其它節點會自動獲知有節點發生變動,停止向刪除的節點發出請求或者把新加入的節點加入自己的請求列表;自動最優化壓力到集群的CPU、I/O、內存和網絡;確保集群穩定、可靠、高效的運行。
3、 平臺消息總線
  平臺需要實現這樣一個能自主控制的智能均衡負載,最關鍵的就是建立一個可靠、靈活、低資源消耗的集群消息總線,類似于戰場上的無線電通訊設備。這樣集群中的每個節點就能及時的通過這個通信總線主動或被動的獲得集群的情況,以支持節點調整和維護自身的狀態和服務。
  對于平臺集群的消息總線,設計基于Java JMS標準進行。在實現時,采用一些在業界已經成熟的消息中間件來構建該消息總線,如可以使用Active MQ進行構建。 Active MQ是Apache基金會下屬的頂級開源項目,是一個支持JMS標準的消息中間件。其可靠性完全達到了7×24小時運行的企業標準,在一些項目里甚至已經達到了365×24的工業標準。Active MQ支持跨平臺運行,如它可以運行在Windows平臺、Linux平臺和Unix平臺等多種平臺上;同時它提供了多種語言接口,如:Java,C,C++,C#,Python等,均可以介入該消息系統。綜合來看,采用Active MQ既能滿足當前集群中常見的跨平臺的要求,又能支持通過多種語言接入。除此之外,我們還可以根據具體的集群環境使用其他的消息中間件:如IBM Websphere Enterprise MQ,JBoss MQ等等。在特定情況下,如果JMS標準不能滿足集群的需求,也可考慮基于TCP/IP協議等底層通訊協議實現符合特定需求的消息總線。
4、 技術實現
  為實現集群中每個節點都能自我智能調節,每個節點都將擁有一個自己的ID和服務能力描述文件,就像是向其他節點介紹自己的名片;同時每個節點還需要維護一個集群內其他節點的ID和服務能力描述文件列表,就像是存放其它節點名片的名片夾。該服務能力描述文件將主要包括兩部分內容:服務和能力。服務部分即描述節點能提供一些什么服務以及有哪些服務可以受理,哪些服務正在休眠,如何訪問這些服務等信息。能力部分則是描述改節點目前的綜合能力,簡單來說就是該節點目前的繁忙程度,以讓其他節點能根據它目前的能力情況來調整狀態。
  
  如上圖所示的服務能力列表,該節點目前安裝有2種服務:服務A和服務B,其中服務A正處于活動狀態,可以對外提供服務;而服務B處于停止狀態。從能力列表可以看出,該節點目前所承受的壓力,綜合評價(Level)為中等,處于可以正常提供服務的狀態。
  每過一段時間,每個節點都將在消息總線上發布自己的最新服務能力描述文件,同時也收取其它節點發送過來的服務能力描述文件,在節點內部整理為一個列表。這樣其它節點能根據該節點最新的服務能力描述文件調整狀態,同時該節點也可以根據收到的服務能力文件列表調整自己的狀態。
  如下圖,當集群里只有兩臺服務器時:一臺應用服務器A和一臺應用服務器B,每臺服務器會有自己的服務能力列表,同時他們還持有集群中其它服務器的服務能力列表:
  
  當集群中新增如一個新的應用服務器C后,集群中服務器持有的名片信息通過消息總線通信后,每臺服務器也會自動的更新他們的名片信息,然后根據名片信息就可以建立集群中新的調用通道。在這個集群中,應用服務器A就會通過名片信息了解到新加入了一臺應服務器C,從而會將服務請求發送到新增應用服務器C。
  
  這樣在以下情況中,集群中的每個節點就能自動的實現自我調節,以達到集群智能自動調節的目的。
    * 節點崩潰或者移除節點
  當一個節點崩潰或被從集群中移除后,其余的節點就無法在下一次的發送時間收取到該節點的服務能力描述文件,這種情況下所有節點就會暫停再對該節點發起請求。當這樣的情況持續幾個發送周期后,例如3個,那么其余節點就會將該節點的服務能力描述文件從列表中移除,該崩潰或被移除節點就平滑的從集群中被排除了。
  如下圖所示(訪問負載壓力以箭頭線的粗細表示,越粗則說明負載壓力越大,越細則說明負載壓力越小),平臺原本擁有一臺Web服務器、3臺應用服務器:A、B、C和2臺數 據服務器A和B。

  當應用服務器C出現故障或者崩潰時,它就會自動被其余服務器從集群中排除,請求會自動被轉發至可以繼續提供服務的服務器中,而不會繼續將請求發送到已經發送故障或者被移除的服務器節點。
    * 新增節點
  當一個節點被管理員新增加入集群后,它會主動連接上消息總線,當發送周期開始時新節點會主動將自己的能力描述文件發送給集群中其他活動的節點。當其他節點獲取到該文件后,能根據該文件自動調整其狀態。
  如下圖所示(負載壓力以箭頭線的粗細表示,越粗則說明負載壓力越大,越細則說明負載壓力越小),平臺集群中同樣擁有6臺機器:一臺Web服務器、3臺應用服務器:A、B、C和2臺數據服務器A和B;但是由于該時刻訪問壓力過大,造成了整個集群里所有應用服務器和數據服務器壓力都過大了,集群性能下降。

  此時,系統管理員可以通過簡單增加硬件服務器來提升服務器集群的承載能力:其增加了一臺應用服務器D,一臺數據服務器C。它們加入集群后集群自動發現了他們,智能均衡負載系統就能自動將請求轉發給新服務器,整個集群的性能自動得到了提升。
  通過以上情況的處理,整個集群的節點都能自主的,不需要人為干預的自動根據集群負載變化進行請求分發的調整,實現整個集群均衡負載的最優化。
5、 總結
  雖然基于消息總線的智能均衡負載系統原理并不復雜,但在實現該均衡負載系統時,應注意一下幾個方面:
  1)由于系統消息總線是整個智能均衡負載技術實現的核心,對于該部分的實現和測試必須嚴格和可靠,確保該消息總線能長時間高可用、高可靠的運行。在必要的時候,甚至需要考慮對消息總線進行具有高可擴展性的設計和實現,以確保它的服務承載能力能根據集群的需求進行擴展。
  2)對于能力描述文件,由于它需要在消息總線中頻繁交互,對于它的設計時應盡量保持其結構簡單,內容精煉。
  3)對于需要跨越防火墻時,應考慮使用HTTP協議等更為安全的通信協議進行通信,防止消息總線被防火墻隔離。
  4)根據能力描述文件進行請求的分發時,應設計高效、可靠的算法對其支撐,防止由于算法的問題造成均衡負載效果低于設計目標。
  最終一個實現良好,性能優秀的智能均衡負載系統較好的解決采用單一均衡負載管理服務器所導致的瓶頸和單點故障問題,使整個集群能夠自主的調節負載和分配請求;同時它還可以顯著的減輕集群系統管理員的工作,使系統管理員能夠從傳統集群繁重的配置管理工作中解放出來,投入到更為關鍵的任務中去。

學術參考網:http://www.qfkih.com.cn/jsj/js/142134.html

上一篇:多媒體教室計算機系統維護策略及技巧

下一篇:淺談《現代教育技術》的Flash實驗案例教學

相關標簽:
彩巴巴彩票官网 赛车pk10精准计划 幸运飞艇计划全天计划金鹰 财神28捕鱼官方下载 复式6码二中二是怎么样的 时时彩龙虎免费计划 7m篮球比分即时比分 大乐透彩票电子彩报 王者荣耀单机版2 麻将技巧视频 北京pk赛车app下载 重庆时时彩个位3码经验 时时彩投注技巧 时时彩新闻 重庆时时预测下一把 北京pk赛车稳定计划 91计划pk10全天计划