高性能可伸縮的分佈式消息中間件設計

本博客遷移到部署在jae上的獨立博客系統wordpress,博客地址:點擊打開獨立博客。歡迎你們一塊兒來討論IT技術。安全

 

        消息中間件基本上是每個大型互聯網公司的標準基礎技術組件配置,雖然有不少的開源消息中間件,功能也很強大,可是今天我仍是想介紹一下怎樣自主架構與設計並實現一套完整的分佈式消息中間件。服務器

        開源的消息中間件或多或少存在一些所謂「坑」,沒有遇到你們用得都很happy,遇到的同窗就只有加班查資料、google搜索或者直接review開源代碼尋找問題緣由了。還有就是基本上開源的消息中間件通常都是大而全的功能,通常比較強調通用嘛。今天爲你們介紹的是能夠靈活橫向擴展而且具備高性能的分佈式消息中間件的架構設計,也會介紹一些實現的關鍵技術,也可能不少開源軟件實現也有一樣的功能,因此經過了解這些設計與實現的核心技術,也能夠更好的理解和使用開源的消息中間件。網絡

1、設計目標

先簡單此設計須要達到的一些目標吧:架構

(1)高性能:應該可以充分利用cpu、內存和網卡等資源,一般狀況下是把網卡(1000M網卡)撐滿;app

(2)消息轉發實時性:延遲必須在一個設定目標內(可配置);負載均衡

(3)消息不丟失:正常狀況下不丟失(若是因爲某一個消息接收到本身網絡出現問題致使鏈接斷開丟失的不算,這個須要消息中間件的客戶端解決的問題);分佈式

(4)能夠橫向無縫擴展:當一個服務節點服務能力不足時,能夠無縫的擴展服務節點,對其餘服務節點和全部客戶端透明;wordpress

(5)安全性:客戶端須要經過用戶名和密碼才能和服務器創建鏈接、發送消息和訂閱消息等;性能

(6)能夠無縫升級系統:程序因爲bug或者新增功能等上線是在所不免的,可是不該該影響正常的消息通訊;google

(7)能夠無縫縮減服務節點:若是消息轉發量不是很大使用過多的節點是資源的浪費(服務器、電費等);

(8)分佈式,防單點;

(9)支持分組訂閱:這個分組訂閱的功能太好使用了,尤爲在作任務的負載均衡調度的時候,後面我會用一篇單獨的文章介紹基於分佈式消息中間件的負載均衡調度系統設計;

 

(10)其餘。。。。

 

2、基本架構圖

先上圖,在解釋,以下圖:

整個內容請看: www.wuyouqiang.com
相關文章
相關標籤/搜索