RocketMQ---消息消费流程

1.消息消费

1.1消息队列负载

同一个消费组内的消费者共同承担其订阅主题下消息队列的消费。

分配算法:尽量使用:平均分配,平均轮询分配。

分配原则:同一个消息消费队列同一时间只会分配给同一个消费者,一个消费者可以分配多个消息消费队列。

1.2消息拉取

 

顺序消息的消费存在消息队列锁:

1.向broker发送锁定该消息队列的请求;

2.锁定成功创建该消息队列的拉去任务;

3.锁定失败则等待其它消费者释放该消息队列的锁。

1.3消息消费

一般需做幂等处理。

消费模式:

1.集群模式:轮询或者根据算法分配,消息只会被某一个消费者消费到,可重试。

2.广播模式:每条消息会被订阅了该消息主题的所有消费者消费,不存在重试。

 

2.消息确认

基于ACK确认机制。

 

3.消费进度管理

记录消息的消费进度。

广播模式:存储在消费者本地。

集群模式:存放在服务端broker。

 

问题:当消费者群组有新的消费者加入或者有消费者宕机,如何处理?

答:RebalanceService线程默认每20秒进行一次消息队列负载,根据当前消费组内消费者个数与主题队列数量按照某一种负载算法进行队列分配。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值