一、應用場景
- 異步處理
- 應用解耦
- 流量削峰
二、系統架構

概念說明:
Broker:提供一種傳輸服務,角色就是維護一條從生産者到消費者的路線,保證資料能按照指定的方式進行傳輸。
Exchange:消息交換機,它指定消息按什麼規則,路由到哪個隊列。
Queue:消息的載體,每個消息都會被投到一個或多個隊列。
Binding:綁定,它的作用就是把exchange和queue按照路由規則綁定起來。
Routing Key:路由關鍵字,exchange根據這個關鍵字進行消息投遞。
vhost:虛拟主機,一個broker裡可以有多個vhost,用作不同使用者的權限分離。
Producer:消息生産者,就是投遞消息的程式。
Consumer:消息消費者,就是接受消息的程式。
Channel:消息通道,在用戶端的每個連接配接裡,可建立多個channel。
RabbitMQ常用的Exchange Type有三種:fanout、direct、topic。
fanout:把所有發送到該Exchange的消息投遞到所有與它綁定的隊列中。(子網廣播,最快)
direct:把消息投遞到那些binding key與routing key完全比對的隊列中。(完全比對、單點傳播)
topic:将消息路由到binding key與routing key模式比對的隊列中。