RocketMQ5.0消费者

server/2024/10/21 9:45:02/

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。


http://www.ppmy.cn/server/95393.html

相关文章

Github 2024-08-03 Rust开源项目日报 Top10

根据Github Trendings的统计,今日(2024-08-03统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10HTML项目1Go项目1Meilisearch: 快速搜索API,提升工作效率 创建周期:2252 天开发语言:Rust协议类型:MIT LicenseStar数量:44442 …

北京汽车美容元宇宙:数字化浪潮下的车美服务新革命

随着社会的发展和科技的进步,元宇宙这一概念正逐步渗透到人们的生活之中,改变了传统行业的运作模式。北京,作为科技创新的前沿城市,正见证着汽车美容元宇宙的诞生与兴盛,为车主们带来了全新的服务体验和便利。 ### 正…

AI学习指南机器学习篇-Sarsa算法的数学基础

AI学习指南机器学习篇-Sarsa算法的数学基础 在机器学习领域,Sarsa算法是一种经典的强化学习算法,它以其良好的收敛性和最优性条件而闻名。然而,了解Sarsa算法的数学基础对于深入理解其内在原理至关重要。本篇博客将探讨Sarsa算法背后的数学理…

laravel项目配置

创建laravel项目 composer create-project --prefer-dist laravel/laravel 项目名称生成项目key php artisan key:generate.清理配置缓存 php artisan config:clearlaravel生成代码 官网链接 php artisan make:model Flight --all生成Flight类相关的文件,对应数…

麦田物语第十八天

系列文章目录 麦田物语第十八天 文章目录 系列文章目录一、(Editor)制作 [SceneName] Attribute 特性二、场景切换淡入淡出和动态 UI 显示一、(Editor)制作 [SceneName] Attribute 特性 在本节课我们编写Unity的特性Attribute来更好的完善我们项目,具体是什么呢,就是当…

cpp 转发和移动

std::forward 和 std::move 在内存上的区别 1. std::move std::move 是一个标准库函数模板&#xff0c;用于将其参数显式地转换为右值引用。这在需要将对象的资源移动而不是复制时非常有用&#xff0c;例如在移动构造函数或移动赋值操作中。 语法: template <class T>…

Vue 3 完整应用开发与扩展教程

目录 Vue 3 完整应用开发与扩展教程前言1. 综合项目开发1.1 选定项目1.2 项目初始化1.3 结构设计1.4 组件开发1.4.1 ArticleList.vue1.4.2 ArticleItem.vue1.4.3 ArticleEditor.vue 1.5 路由配置1.6 状态管理1.7 表单处理 2. 服务端渲染&#xff08;SSR&#xff09;与 Nuxt.js2…

学习笔记——交通安全分析17

目录 前言 学习笔记整理 6城郊主干道交通安全分析 结束语 前言 #随着上一轮SPSS学习完成之后&#xff0c;本人又开始了新教材《交通安全分析》的学习 #整理过程不易&#xff0c;喜欢UP就点个免费的关注趴 #本期内容接上一期16笔记 学习笔记整理 6城郊主干道交通安全分析 …