高效能可伸縮的分布式訊息中介軟體設計

2021-09-06 18:43:31 字數 619 閱讀 6175

訊息中介軟體基本上是每乙個大型網際網路公司的標準基礎技術元件配置,雖然有很多的開源訊息中介軟體,功能也很強大,但是今天我還是想介紹一下怎樣自主架構與設計並實現一套完整的分布式訊息中介軟體。

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

(1)高效能:應該能夠充分利用cpu、記憶體和網絡卡等資源,通常情況下是把網絡卡(1000m網絡卡)撐滿;

(2)訊息**實時性:延遲必須在乙個設定目標內(可配置);

(3)訊息不丟失:正常情況下不丟失(如果由於某乙個訊息接收到自己網路出現問題導致連線斷開丟失的不算,這個需要訊息中介軟體的客戶端解決的問題);

(4)可以橫向無縫擴充套件:當乙個服務節點服務能力不足時,可以無縫的擴充套件服務節點,對其他服務節點和所有客戶端透明;

(5)安全性:客戶端需要通過使用者名稱和密碼才能和伺服器建立連線、傳送訊息和訂閱訊息等;

(6)可以無縫公升級系統:程式由於bug或者新增功能等上線是在所難免的,但是不應該影響正常的訊息通訊;

(7)可以無縫縮減服務節點:如果訊息**量不是很大使用過多的節點是資源的浪費(伺服器、電費等);

(8)分布式,防單點;

(10)其他。。。。

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

整個內容請看:

www.wuyouqiang.com

分布式訊息中介軟體

一 分布式訊息中介軟體入門 訊息中介軟體主要實現分布式系統中解耦 非同步訊息 流量銷鋒 日誌處理等場景。現在生產中用得最多的訊息佇列有 activemq,rabbitmq,kafka,rocketmq 等。jms 規範 類似於 jdbc 的一套介面規範,但不同的是他是面向的訊息服務,提供一套標準 a...

分布式訊息中介軟體 kafka

在我們大量使用分布式資料庫 分布式計算集群的時候,是否會遇到這樣的一些問題 這個時候,我們就可以用到分布式訊息系統了。雖然上面的描述更偏向於乙個日誌系統,但確實kafka在實際應用中被大量的用於日誌系統。首先我們要明白什麼是訊息系統,在kafka官網上對kafka的定義叫 a distributed...

分布式之訊息中介軟體

目錄 1.訊息中介軟體概述 2.訊息中介軟體使用場景 3.訊息中介軟體原理 4.訊息中介軟體傳遞模式 4.1點對點模式 ptp 4.2發布 訂閱模型 pub sub 訊息中介軟體利用高效可靠的訊息傳遞機制進行平台無關的資料交流,並基於資料通訊來進行分布式系統的整合。通過提供訊息傳遞和訊息排隊模型,它...