目錄
1. 基本概念
2. RabbitMq 的工作流程
3. 協議
4. 簡單的生產者, 消費者模型
4.1 我們先引入 rabbitmq 的依賴
4.2 生產者
4.3 消費者
1. 基本概念
- Pruducer : 生產者, 產生消息
- Consumer : 消費者, 消費消息
- Broker : RabbitMq Server, 用來接收和發送消息
- Connection : 是客戶端和服務端的?tcp 連接, 負責傳輸客戶端和服務端之間的所有數據和控制信息
- Channel : 通道, 一個 Connection 可以有多個通道, 主要作用是將消息的讀寫操作復用到同一個 tcp 連接上, 這樣可以減少建立和關閉連接的開銷, 提高性能
- Exchange : 交換機, 將消息路由到對應的 Queue
- Queue : 隊列, RabbitMq 中用來存放消息的內部對象
- BindingKEy (PoutingKey) :? 生產者在發送消息時, 會發送一個 BindingKey, 用來匹配交換機, 交換機與隊列之間的綁定也是通過 BindingKey 實現的, 一個交換機可以綁定多個隊列, 統一交換機可以與不同的隊列進行綁定, 使用的 BindingKey 是不同的
- Virtual host : 虛擬主機, 為消息隊列提供了邏輯上的隔離機制?
2. RabbitMq 的工作流程
- Producer 生產了一條消息
- Producer 連接到 RabbitMq Broker, 建立一個連接(Connection), 開啟一個信道(Channel)
- Producer 聲明一個交換機(Exchange), 路由信息
- Producer 聲明一個隊列(Queue), 存放信息
- Producer 發送消息至 RabbitMq?Broker
- RabbitMq Broker 接收消息, 并存入響應的隊列(Queue)中, 如果未找到相對應的隊列, 則根據生產者的配置, 選擇丟棄或者回退給生產者
3. 協議
- 使用 AMQP 協議, 是一種高級消息隊列協議, AMQP 定義了一套確定的消息交換功能, 包括交換器(Exchange), 隊列(Queue)等. 這些組件共同工作, 使得生產者能夠將消息發送到交換器. 然后由隊列接收并等待消費者接收. AMQP還定義了一個網絡協議, 允許客戶端應用通過該協議與消息代理和 AMQP 模型進行交互通信