Dubbo+Zookeeper架構—高階篇16—訊息中介軟體在分散式系統中的作用及介紹
一、訊息中介軟體的定義
Message-orientedmiddleware (MOM) is software infrastructure focused on sending and receivingmessages between distributed systems.
訊息中介軟體是在分散式系統中完成訊息的傳送和接收的基礎軟體。
二、訊息中介軟體的作用
訊息中介軟體可利用高效可靠的訊息傳遞機制進行平臺無關的資料交流,並基於資料通訊來進行分散式系統的整合。通過提供訊息傳遞和訊息排隊模型,可以在分散式環境下擴充套件程序間的通訊。
通過訊息中介軟體,應用程式或元件之間可以進行可靠的非同步通訊,從而降低系統之間的耦合度,提高系統的可擴充套件性和可用性。
三、應用場景:通過使用訊息中介軟體對Dubbo服務間的呼叫進行解耦
四、JMS介紹
1、JMS (JavaMessage Service)
JMS是JavaEE中的一個關於訊息的規範,是一套與具體平臺無關的API。
2、JMS元素
JMS提供者 ---- 連接面向訊息中介軟體的,JMS介面的一個實現。 JMS客戶 ------ 生產或消費訊息的基於Java的應用程式或物件。
JMS生產者 ---- 建立併發送訊息的JMS客戶。
JMS消費者 ---- 接收訊息的JMS客戶。
JMS訊息 ------ 可以在JMS客戶之間傳遞的資料的物件
JMS佇列 ------ 一個容納那些被髮送的等待閱讀的訊息的區域。
JMS主題 ------ 一種支援傳送訊息給多個訂閱者的機制。
3、JMS應用程式介面
ConnectionFactory(連線工廠)------ 使用者用來建立到JMS提供者的連線的被管物件。
Connection(連線)------------------- 連線代表了應用程式和訊息伺服器之間的通訊鏈路。 Destination(目標)------------------- 訊息釋出和接收的地點,或者是佇列,或者是主題。
MessageProducer(訊息生產者)----- 由會話建立的物件,用於傳送訊息到目標。
MessageConsumer(訊息消費者)---- 由會話建立的物件,用於接收發送到目標的訊息。
4、JMS訊息模型
五、實現JMS規範的訊息中介軟體
ActiveMQ、RocketMQ、RabbitMQ、HornetQ......
不同訊息中間的對比: