RocketMQ5.0消费者

RocketMQ 5.0 提供了三种主要的消费者类型:PushConsumer、SimpleConsumer 和 PullConsumer。每种类型的消费者都有其特定的使用场景和特点。以下是对这三种消费者的概念及其区别的详细阐述:

在这里插入图片描述

PushConsumer

概念:

  • PushConsumer 是一种主动推送消息给消费者的消费模式。RocketMQ 的 Broker 会主动将消息推送给消费者,而不是由消费者主动去拉取消息。

特点:

  1. 消息推送:Broker 主动将消息推送给消费者,消费者不需要主动拉取消息。
  2. 高实时性:由于消息是由 Broker 主动推送,因此消息到达消费者的延迟较低,适合对实时性要求高的应用场景。
  3. 自动负载均衡:RocketMQ 会自动进行负载均衡,确保消息在多个消费者之间均匀分布。
  4. 易用性:开发者只需要关注消息的处理逻辑,RocketMQ 自动处理消息的推送和负载均衡。

使用场景:

  • 实时性要求高的场景,如实时数据分析、在线交易系统等。

SimpleConsumer

概念:

  • SimpleConsumer 是一种简化版的消费者模式,适合简单的消息消费场景。它结合了 Push 和 Pull 模式的一些特点,但更加灵活和轻量。

特点:

  1. 灵活性高:可以手动拉取消息,也可以设置自动拉取,适合各种复杂的消费逻辑。
  2. 轻量级:相比 PushConsumer 和 PullConsumer,SimpleConsumer 更加轻量,不需要太多配置。
  3. 手动控制消费进度:开发者可以手动控制消费进度,更加灵活。

使用场景:

  • 需要灵活控制消息消费逻辑的场景,如批量处理、延迟处理等。

PullConsumer

概念:

  • PullConsumer 是一种主动拉取消息的消费模式。消费者主动从 Broker 中拉取消息进行处理。

特点:

  1. 消费者主动拉取:消费者主动从 Broker 拉取消息,而不是被动接收消息。
  2. 高控制性:消费者可以完全控制消息拉取的频率和数量,适合需要精确控制消息消费过程的场景。
  3. 手动管理消费进度:需要手动管理消费进度,开发者可以根据需求灵活调整。

使用场景:

  • 需要精确控制消息拉取和处理的场景,如批量处理、任务调度系统等。

总结

特性PushConsumerSimpleConsumerPullConsumer
消息获取方式Broker 主动推送可手动拉取或自动拉取消费者主动拉取
实时性
负载均衡自动需手动实现需手动实现
控制性
使用复杂度
适用场景实时性要求高的场景需要灵活控制消息消费逻辑的场景需要精确控制消息拉取和处理的场景

根据不同的应用场景和需求,选择合适的消费者类型可以更好地满足系统的性能和功能要求。

PushConsumer消费重试策略

最大重试次数由消费者分组创建时的元数据控制

重试间隔时间

  • 无序消息(非顺序消息):重试间隔为阶梯时间

在这里插入图片描述

  • 顺序消息
    默认值:16次
    顺序性投递:3000毫秒

SimpleConsumer消费重试策略

默认值:用户必填参数,无默认值。
取值范围建议:最小10秒;最大12小时。

消息重试间隔

消息重试间隔=不可见时间-消息实际处理时长

SimpleConsumer 的消费重试间隔通过消息的不可见时间控制。例如,消息不可见时间为30 ms,实际消息处理用了10 ms就返回失败响应,则距下次消息重试还需要20 ms,此时的消息重试间隔即为20 ms;若直到30 ms消息还未处理完成且未返回结果,则消息超时,立即重试,此时重试间隔即为0 ms。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值