今天研究了一下basicConsume 里面的一些參數
先解釋一些參數名的含義 , 后面會用到
序號 | 返回值 | 備注 |
---|---|---|
1 | envelope | 包含deliveryTag、exchange、routingKey等信息 |
2 | props | BasicProperties對象,即消息生產時設置的該對象特性 |
3 | body | 消息體byte數組 |
4 | messageCount | 消息數量 |
序號 | 方法參數 | 含義 |
---|---|---|
1 | queue | 消費隊列名稱 |
2 | autoAck | 自動確認提交 |
3 | consumerTag | 消費者唯一標識 |
4 | noLocal | 不消費同一Connection連接生產的消息 |
5 | consumer | 具體組織消費邏輯對象,里面提供系列重載方法用戶消費邏輯組裝 |
6 | deliveryTag | 確認消息的編號,這是每個消息被消費時都會分配一個遞增唯一編號 |
先說結論 : (1) DelivertTag 跟消費者的channel 有關 , 如果兩個消費者使用同一個channel 創建出來 , 那么他們相當於共享同一個DelivertTag
(2)ConsumerTag 跟消費者本身有關 , 即便是同一個channel創建出來的消費者 ConsumerTag也是不同的兩個
以下是消費者部分代碼:
下面說說自己的初步測試結果 (初步測試結果不完全准確 , 可以看下文):
deliveryTag參數 :
左邊是消費者1輸出的結果 右邊是消費者2輸出的結果
consumerTag參數:
為了進一步驗證上面的結果的正確性:
我們使用同一個channel創建兩個消費者
===================================================================================補充說一下另一個參數properties=====================================================================================