訊息中介軟體 RabbitMQ

2022-06-01 16:21:11 字數 2181 閱讀 1038

訊息中介軟體

1.採用非同步處理模式

訊息傳送者可以傳送乙個訊息而且不用等待相應。

訊息接收者訂閱或監聽該通道。

一條訊息最終可以**給乙個或多個訊息接收者。

2.應用按程式和應用程式呼叫關係為松耦合關係

傳送者和接收者不必了解對方,只需要確認訊息。

1 點對點模型 ptp

每個訊息只有乙個消費者

傳送者和接收者沒有時間依賴

接收者確認訊息接收和處理成功

2 發布-訂閱模型 pub/sub

多個消費者可以獲得訊息。

發布者和訂閱者之間存在時間依賴性。

發布者需要建立乙個訂閱(subscription),以便消費者訂閱。

訂閱者必須保持持續的活動狀態接收訊息,除非訂閱者建立了持久的訂閱。

訂閱者未連線時發布的訊息將在訂閱者重新連線時重新發布。

(1)每個訊息可以有多個訂閱者

(2)客戶端只有訂閱後才能接收到訊息

(3)持久訂閱和非持久訂閱

訊息中介軟體的使用情景。

1、**使用者註冊,註冊成功後會過一會傳送郵件確認或者簡訊。

這種場景是發布訂閱模式的。

2、日誌進行集中收集,用於計算pv,使用者行為分析。

小流量測試,版本a 98%流量,版本a.1 2%流量,最後根據集中日誌收集,通過日誌判斷版本效果。

3、資料複製案例

將資料從源頭複製到多個目的地,一般要求順序或者保證因果。並且保證資料的完整性。

用於跨機房資料傳輸,搜尋,離線資料計算等。

4、延遲訊息傳送和暫存

(1)把訊息中介軟體當成可靠的訊息暫存地。

(2)定時進行訊息投遞,比如模擬使用者秒殺訪問,進行系統壓力測試。

點對點模式

5 訊息廣播

比如電商,商品**用cache,當資料變更之後由於網路原因,某個cache沒有被更新到,就會出現問題。

這個資料不一致的問題就可以通過訊息中介軟體來解決。

現在分布式一般都用租約的方式。

發布訂閱模式

訊息中介軟體分類:

1 (push)推送訊息模型:訊息生產者將訊息傳送給訊息傳遞服務,訊息傳遞服務又

將訊息推送給訊息消費者。

訊息儲存到訊息中介軟體中,儲存推送記錄,儲存訂閱關係,消費者負載均衡就是均衡推送給消費者。

2(pull)拉訊息模型:消費者請求訊息服務接收訊息,訊息生產者從訊息中介軟體拉該訊息。

rabbitmq

關鍵字:

exchangetype型別

直接互動式

廣播式路由鍵

主題式交換器

rabbitmq常用配置

rabbitmq.config配置例子:

rabbitmq常用命令

reload就是不停止服務的時候對配置更改生效。

未完待續

訊息中介軟體RabbitMQ

rabbitmq 是用erlang實現的乙個高併發高可靠amqp訊息佇列伺服器。rabbitmq 依賴於erlang環境,所以先要安裝erlang 執行 otp win32 r16b03.exe 再安裝rabbitmq 執行 rabbitmq server 3.2.3.exe 新增環境變數 rabb...

訊息中介軟體RabbitMQ

1非同步 不等待 2解耦 任務的序列變並行 3流量削峰 大任務量負載均衡 rabbitmq,kafka,flume amqp advanced message queue protocol 0 訊息 分為訊息頭和訊息體,訊息頭包含 路由鍵 routing key,優先順序priority,deliv...

訊息中介軟體RabbitMQ

1.1.為什麼使用訊息佇列 應用場景 常見的訊息中介軟體有?用於實現分布式系統模組與模組之間的訊息通訊。原理 原理就是生產者生產訊息,把訊息傳送給activemq。activemq接收到訊息,然後檢視有多少個消費者,然後把訊息 給消費者,此過程中生產者無需參與。消費者接收到訊息後做相應的處理和生產者...