當前位置:編程學習大全網 - 源碼下載 - AMQP協議和rabbitMQ

AMQP協議和rabbitMQ

AMQP,即 高級消息隊列協議 (Advanced Message Queuing Protocol),是壹個消息中間件應用層協議,用於組件之間的解耦,來提供 統壹消息服務。主要功能是 排序消息,路由消息(包括點對點和訂閱-發布),保證消息的可靠性和安全性。

遵循AMPQ協議的客戶端,都能通過 消息中間件 相互通信。這樣 客戶端 就可以采用不同的開發語言實現,彼此無強依賴關系,降低客戶端復雜性,提高開發效率也利於後期維護。

AMQP 的模型架構如下:

rabbitMQ是AMQP協議的壹個開源實現。架構模型同樣可以用以下的圖來表示:

如上圖,simple模式,單個publisher,單個queue,單個consumer

如上圖,work模式

多個consumer***用壹個queue的message

此種模式下,rabbitMQ會自動做負載均衡,將消息輪詢發送給各個消費者,即壹個消息只能被壹個消費者獲取

如上圖,publish / subscribe 發布訂閱模式(廣播模式)

相對前2種模式,多了壹個 exchange (type為fanout) ,message先發送到exchange,exchange再分別發送到對應的所有queue。而consumer訂閱自己的queue,在自己訂閱的queue上消費message。

示例應用場景,如下圖示:

比如 網上購物,下單支付成功後,通知用戶的方式有許多種,app推送,短信,email 等等。

message到來後被exchange發送到3個queue(app推送q,短信q,email_q)

之後 app推送服務,短信通知服務,email通知服務 從各自訂閱的queue獲取消息,通知用戶支付成功

如上圖示,exchange類型設定為direct

此時 message中的rountingKey 和 exchange中的bindingKey匹配,兩者相等則發送對應的queue中,如果匹配不到bindingKey,則丟棄該message。

示例應用場景,如下圖示:

比如服務產生的日誌,日誌有許多類型,error,info,debuf等類型的日誌,而我們的需求只想要將 error 類型的日誌寫入磁盤,就可以用routing模式,將error日誌路由到error queue,再由相應的 寫入磁盤服務獲取message,寫入磁盤

如上圖示,exchange類型為topic,相對於第4種模式,相同點是都根據 rountingKey 匹配,不同點是 topic 模式支持模糊匹配。

  • 上一篇:3月10日起嶽陽進口冷鏈食品開始集中監管
  • 下一篇:看到想要的電影,就得用BT。怎麽做?
  • copyright 2024編程學習大全網