rabbitmq_特别注意篇 basicConsume
今天研究了一下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=====================================================================================