RocketMq的消费端

技术主题

集群消费模式下,提高消费者的负载能力,必然要增加消费者的数量,消费者的数量增加了,如何做到尽量平均的消费消息,以及队列如何分配给对应的消费者

技术原理

从源码的角度去理解-消费者增加时候会引起rebalance
1)DefaultMQPushConsumerImpl–start()
2)MQClientInstance调用了rebalanceService()
3)RebalanceService的run方法
4)在DefaultMQPushConsumerImpl的start方法末尾还有一句
this.mQClientFactory.rebalanceImmediately()

AllocateMessageQueueStrategy有6种实现的策略,
1-连续分配
2-每人轮流一个
3-通过配置
4-一致性哈希
5-指定一个broker的topic中的queue消费
6-按Broker的机房就近分配

技术原理-重试

消费异常,重试队列的消息会过一段时间再次发送给消费者,如果还是异常,则会进入重试队列。。从10秒开始直到2个小时:10s, 30s,1m,2m,3m,4m,5m,6m,7m,8m,9m,10m,20m,30m,1h,2h.重试16次。

进入死信队列,需要人工处理,单独写一个线程,订阅%DLQ% + ConsumerGroupName,消费消息

应用二:项目应用二

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZhiguoXue_IT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值