分布式之訊息中介軟體

2021-08-09 16:59:33 字數 1641 閱讀 6611

目錄

* 1.訊息中介軟體概述

* 2.訊息中介軟體使用場景

* 3.訊息中介軟體原理

* 4.訊息中介軟體傳遞模式

* 4.1點對點模式(ptp)

* 4.2發布-訂閱模型(pub/sub)

訊息中介軟體利用高效可靠的訊息傳遞機制進行平台無關的資料交流,並基於資料通訊來進行分布式系統的整合。通過提供訊息傳遞和訊息排隊模型,它可以在分布式環境下擴充套件程序間的通訊。訊息中介軟體就是用在訊息佇列伺服器中用於過濾、區分和根據規則進行**的程式。

目前在生產環境,使用較多的訊息中介軟體有activemq,rabbitmq,zeromq,kafka,metamq,rocketmq等

訊息中介軟體適用於需要可靠的資料傳送的分布式環境。

採用訊息中介軟體機制的系統中,不同的物件之間通過傳遞訊息來啟用對方的事件,完成相應的操作。

訊息中介軟體能在不同平台之間通訊,它常被用來遮蔽掉各種平台及協議之間的特性,實現應用程式之間的協同,其優點在於能夠在客戶和伺服器之間提供同步和非同步的連線,並且在任何時刻都可以將訊息進行傳送或者儲存**,這也是它比遠端過程呼叫更進一步的原因。

要了解訊息中介軟體的原理,先了解mom(面向訊息的中介軟體)。

面向訊息的中介軟體(mom),提供了以鬆散耦合的靈活方式整合應用程式的一種機制。它們提供了基於儲存和**的應用程式之間的非同步資料傳送,即應用程式彼此不直接通訊,而是與作為中介的mom通訊。mom提供了***的訊息傳送(至少是在盡可能地做到這一點),應用程式開發人員無需了解遠端過程呼叫(prc)和網路/通訊協議的細節。

訊息中介軟體利用高效可靠的訊息傳遞機制進行平台無關的資料交流,並基於資料通訊來進行分布式系統的整合。通過提供訊息傳遞和訊息排隊模型,它可以在分布式環境下擴充套件程序間的通訊。

4.1點對點模式(ptp)

ptp模式包含訊息佇列(queue),傳送者(sender)。接收者(receiver),每個訊息都被傳送到乙個特定的佇列,接收者從佇列中獲取訊息。佇列保留著訊息,而且佇列可以是持久的,以保證在訊息服務出現故障時仍然能夠傳遞訊息,直到他們被消費或超時。

ptp的特點:

- 每個訊息只有乙個消費者(cunsumes)(即一旦被消費,訊息就不再在訊息佇列中)

- 傳送者和接收者之間在時間上沒有依賴性,也就是傳送者傳送訊息後,不管接收者是否接收訊息或者接收者服務是否在執行,都不會影響到訊息被傳送到佇列

- 接收者在成功接收訊息之後需向佇列應答成功

4.2發布-訂閱模型(pub/sub)

發布-訂閱模型(pub/sub)包含三個角色:主題(topic),發布者(publisher),訂閱者(subscriber) 。多個發布者將訊息傳送到topic,系統將這些訊息傳遞給多個訂閱者。

pub/sub的特點

- 每個訊息可以有多個消費者

- 傳送者和接收者之間在時間上存在依賴性,針對某個主題(topic)的訂閱者,它必須建立乙個訂閱者之後,才能消費發布者的訊息。

- 為了消費訊息,訂閱者必須保持執行的狀態。

為了緩和這樣嚴格的時間相關性,jms允許訂閱者建立乙個可持久化的訂閱。這樣,即使訂閱者沒有被啟用(執行),它也能接收到發布者的訊息。

如果希望傳送的訊息可以不被做任何處理、或者只被乙個訊息者處理、或者可以被多個消費者處理的話,那麼可以採用pub/sub模型。

分布式之訊息中介軟體

目錄 訊息中介軟體利用高效可靠的訊息傳遞機制進行平台無關的資料交流,並基於資料通訊來進行分布式系統的整合。通過提供訊息傳遞和訊息排隊模型,它可以在分布式環境下擴充套件程序間的通訊。訊息中介軟體就是用在訊息佇列伺服器中用於過濾 區分和根據規則進行 的程式。目前在生產環境,使用較多的訊息中介軟體有act...

分布式訊息中介軟體

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

分布式訊息中介軟體 kafka

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