消息组和消息分区是否能同时作用?
# 具体遇到的问题
在测试消息分区试,我新增加了一个节点示例,仅仅只改变了消费组
# 第一个实例配置
cloud:
stream:
bindings:
# 绑定channel到broadcast
myTopic-producer:
destination: broadcast
# 绑定channel到broadcast
myTopic-consumer:
destination: broadcast
# 消息分组示例
group-producer:
destination: group-topic
## 设置生产者消息分区个数为2
producer:
partition-count: 2
## SpEL (key resolver)
## 只有索引参数为1的节点(消费者),才能消费消息
partition-key-expression: "1"
group-consumer:
destination: group-topic
# 指定当前消费者示例属于哪个消费组
group: Group-A
## 消息分区配置
consumer:
## 开启消息分区功能
partitioned: true
# 当前消费者示例总数
instance-count: 2
# 当前实例的索引号,最大值:instance-count-1
instance-index: 1
# 相关课程内容截图
第二个实例配置
cloud:
stream:
bindings:
# 绑定channel到broadcast
myTopic-producer:
destination: broadcast
# 绑定channel到broadcast
myTopic-consumer:
destination: broadcast
# 消息分组示例
group-producer:
destination: group-topic
## 设置生产者消息分区个数为2
producer:
partition-count: 2
## SpEL (key resolver)
## 只有索引参数为1的节点(消费者),才能消费消息
partition-key-expression: "1"
group-consumer:
destination: group-topic
# 指定当前消费者示例属于哪个消费组
group: Group-B
## 消息分区配置
consumer:
## 开启消息分区功能
partitioned: true
# 当前消费者示例总数
instance-count: 2
# 当前实例的索引号,最大值:instance-count-1
instance-index: 1
第三个实例配置
cloud:
stream:
bindings:
# 绑定channel到broadcast
myTopic-producer:
destination: broadcast
# 绑定channel到broadcast
myTopic-consumer:
destination: broadcast
# 消息分组示例
group-producer:
destination: group-topic
## 设置生产者消息分区个数为2
producer:
partition-count: 2
## SpEL (key resolver)
## 只有索引参数为1的节点(消费者),才能消费消息
partition-key-expression: "1"
group-consumer:
destination: group-topic
# 指定当前消费者示例属于哪个消费组
group: Group-B
## 消息分区配置
consumer:
## 开启消息分区功能
partitioned: true
# 当前消费者示例总数
instance-count: 2
# 当前实例的索引号,最大值:instance-count-1
instance-index: 0
# 尝试过的解决思路和结果
测试结果是两个组下的指定索引实例都会消费消息,那是不是可以理解为当消费分区和消费组不能同时作用,且以消费分区生效。
22
收起
正在回答
1回答
两个组下指定的索引实例都会消费消息,这个就是预期的正确结果,一个消息发出之后,会被每个消费组消费一次,加上消费分区的设置,那就是每个组对应下标的实例都会收到这个消息
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星