訊息佇列之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...