中間件學習 - Rabbit MQ 概念及特殊MQ實現

Rabbit MQ

官方文檔

介紹

Rabbit MQ是一個消息隊列組件,使用Erlang開發,消息隊列中間件是分佈式系統中重要的組件,主要解決應用耦合,異步消息,流量削鋒等問題

安裝使用

  1. 安裝Erlang (RabbitMQ基於Erlang開發) Downloads - Erlang/OTP
  2. 配置Erlang環境
  3. erl -version 驗證
  4. 安裝rabbitMQDownloading and Installing RabbitMQ — RabbitMQ
  5. 進去rabbitMQ安裝目錄的sbin目錄裏面
  6. 輸入rabbitmq-plugins enable rabbitmq_management命令安裝管理頁面的插件
  7. 啓動rabbitmq-server.bat
  8. 進入管理頁面http://localhost:15672 ,賬號密碼默認是:guest/guest

組件名稱

  • exchange(交換機):按照一定的規則將消息路由轉發到隊列,並且可以對消息進行過濾,交換機不存儲數據。
  • queue(隊列):存儲消息,消息到達後轉發到消費者。

RabbitMQ 的工作模式

  1. 簡單隊列模式(Simple Queue)
  2. 工作隊列模式(Work Queues)
  3. 發佈訂閱模式(Publish/Subscribe)
  4. 路由模式(Routing)
  5. 主題模式(Topic)

簡單隊列模式

最簡單的隊列模式,一個生產者一個消費者,主要用於處理異步任務

工作隊列模式

一個生產者生產數據往隊列裏放,會有多個消費者消費隊列裏面的數據,消息不會被重複消費

借大佬圖片用一下🦌

在消息過多,想增加執行效率的時候使用

訂閱發佈模式

生產者將消息發給交換機,每個消費者綁定一個隊列,交換機會將消息轉發到每一個綁定的隊列裏面去,每個隊列都會收到這個消息,每個消費者都會消費到這條消息,即消息會被重複消費。

借大佬圖片用一下🦌

路由模式

路由模式是一種特殊的發佈訂閱模式,交換機可以根據不同的規則將消息路由到不同的隊列中保存

可以用來做日誌級別的區分處理

topic 通配符模式

跟路由模式差不多,只不過路由方式可以換成通配符

死信隊列

死信隊列是用來接收過期消息,接收被拒絕的消息

拒絕的消息:

  • 消息超長
  • 消息過期

延遲隊列

延遲隊列可以延遲消費消息

實現方式:

  1. 設置消息過期時間
  2. 消息過期通過死信狀態機將消息放入死信隊列
  3. 死信隊列通過狀態機將消息發送到正常的隊列裏面消費

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章