RocketMQ的Rebalance详解

本文详细介绍了RocketMQ的Rebalance机制,包括负载均衡的概念、触发Rebalance的时机、分配策略以及顺序消息的Rebalance处理。RocketMQ通过Rebalance实现在消费者数量变化时的消费关系再平衡,保证消息的正确分配,并通过幂等性处理短暂的重复消费问题。
摘要由CSDN通过智能技术生成

负载均衡

RocketMQ的消费负载是通过queue来对消息进行分片,然后consumer消费自己对应的queue来实现。我们以如下场景为例:

  • topicA有两个队列:queue1和queue2。
  • 消费组groupA有一台机器:consumer1

queue分配如下图所示,由于只有一台消费者机器,所以分布在queue1和queue2的消息都被consumer1消费掉。

如果这个时候开发人员收到消息积压告警,说明一个consumer已经无法及时处理所有消息了,对于这种情况通常会选择对消费集群进行扩容。于是新增了一台机器consumer2来协助处理积压的消息。情况变成下图所示:

Rebalance

这里需要大家思考一下,rocket是如何把queue2从consumer1调整到consumer2的?这里只是一个简单的实例,真实环境下可能是十几个queue对应十几个consumer。这样的对应关系更复杂,如果新增或删除一些consumer节点都需要去重新调整消费关系。

其实rocket是通过Rebalance机制来完成queue和consumer关系的协调的。Rebalance的意思就是再平衡。Relanace机制是如何实现消费关系再平衡呢?其内部的运转机制又是如何?我们接下来一探究竟。

rocket的Re

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值