RabbitMQ簡介
RabbitMQ是用Erlang編寫的一個開源消息代理和隊列服務器,可以通過協議在不同的應用程序之間共享數據。
一些重要的概念
server
也叫broker,它提供一種傳輸服務,它的角色就是維護一條從生產者到消費者的路線,保證數據能按照指定的方式進行傳輸。
Connection
應用程序與broker的網絡鏈接
Channel(網絡信道)
Channel是進行消息讀寫的通道,幾乎所有的操作都在Channel中進行,客戶端可以建立多個Channel,每個Channel代表一個會話任務
Message(消息)
生產者和消費者之間傳送的數據。由Properties和Body組成,其中Properties可以對消息進行修飾,比如可以設置消息的優先級、過期時間延遲等特性。
Exchange(交換機)
用於指定消息按什麼規則,路由到哪個隊列。rabbitmq中有四種類型的exchange:direct、topic、fanout、header。
Routing Key(路由關鍵字)
Exchange
根據Routing Key
進行消息投遞
Queue(消息隊列)
消息的載體,每個消息都會被投到一個或多個隊列
Binding(綁定)
它的作用就是把exchange和queue按照路由規則綁定起來,
Virtual Host (虛擬主機)
用於進行邏輯隔離,一個 Virtual Host可以有多個Exchange和Queue。
PS:可以簡單理解爲就像java中的包名,用於邏輯區分。
RabbitMQ消息流轉圖
通過下面這張圖,能更好的理解上面的概念