訊息佇列之RabbitMQ原理

2021-09-01 16:03:33 字數 1063 閱讀 1000

訊息佇列之rabbitmq原理

2023年10月30日 20:04:10 1q84emo 閱讀數:5274 標籤: 訊息中介軟體

中介軟體rabbitmq 更多

什麼是amqp?

amqp,高階訊息佇列協議,是應用層協議的乙個開放標準,為面向訊息的中介軟體而設計的。基於此協議的客戶端與訊息中介軟體可以傳遞訊息,並不受客戶端/中介軟體不同產品,不同的開發語言等條件的限制。rabbitmq就是通過erlang語言實現的一種訊息中介軟體。

amqp的特徵

amqp的主要特徵是面向訊息、佇列、路由(包括點對點和發布\訂閱模式)、可靠性、安全

jms程式設計模型

connectionfactory、destination、connection、session(產生客戶端與訊息佇列伺服器的tcp連線) 

訊息生產者、訊息消費者、訊息***

rabbitmq是什麼

rabbitmq是乙個遵循amqp協議的訊息中介軟體,它從生產者接受訊息並傳遞給消費者,在這個過程中,根據路由規則進行路由、快取和持久化。

訊息佇列中介軟體的應用場景(不只是rabbitmq)

伺服器在接收到使用者請求後,首先寫入訊息佇列。這時如果訊息佇列中訊息數量超過最大數量,則直接拒絕使用者請求或返回跳轉到錯誤頁面; 

秒殺業務根據秒殺規則讀取訊息佇列中的請求資訊,進行後續處理

rabbitmq的結構圖

幾個概念說明:

訊息佇列的使用過程

1、客戶端連線到訊息佇列伺服器,開啟乙個channel。 

2、客戶端宣告乙個exchange,並設定相關屬性。 

3、客戶端宣告乙個queue,並設定相關屬性。 

4、客戶端使用routing key,在exchange和queue之間建立好繫結關係。 

5、客戶端投遞訊息到exchange。 

6、exchange接收到訊息後,就根據訊息的key和已經設由binding,進行訊息路裡,將訊息投遞到乙個或多個佇列裡

ps:通過durable引數來進行exchang、queue、訊息持久化

rabbitmq交換機

rabbitmq包含四種不同的交換機型別:

訊息佇列Rabbitmq

rabbitmq server rabbitmqctl reset rabbitmqctl stop rabbitmqctl stop rabbitmqctl list users rabbitmqctl list queues rabbitmqctl add user user name user...

訊息佇列RabbitMQ

這是乙個很嚴肅的問題。系統之間解除耦合,可以讓不同語言編寫的系統通訊互動 保證伺服器負載不會飆公升。高大上一點就是流量削峰。讓程式變成非同步,提高響應速度。把費時任務放到另乙個程序或執行緒去執行。redis實現 剛開始學習redis時,一看這個鍊錶不就是給佇列準備的嗎?所以,一心扎進去,要寫個佇列出...

RabbitMQ訊息佇列

訊息發布接收流程 接收訊息 工作模式 publish subscribe 發布訂閱模式 發布訂閱publish subscribe和工作模式work queues的區別 routing 路由模式 區別 topics 區別 header 宣告佇列 bean queue inform sms publi...