RocketMQ5.0 Consumer Group

news2025/1/10 2:07:07

消费者分组的概念

消费者分组(Consumer Group)是指一组消费同一类消息的消费者实例。每个消费者分组有一个唯一的名称,用于标识该分组。消费者分组的设计使得消息能够被多个消费者实例并行消费,同时确保每条消息只被一个消费者实例处理一次。

定义:消费者分组的名称,用于区分不同的消费者分组。集群内全局唯一。

消费模式

1. 集群消费(Clustering):在集群消费模式下,同一个消费者分组中的多个消费者实例共同消费消息,每条消息只会被其中一个消费者实例消费。这种模式适用于负载均衡的场景。

2. 广播消费(Broadcasting):在广播消费模式下,同一个消费者分组中的每个消费者实例都会消费所有的消息。这种模式适用于每个消费者都需要处理所有消息的场景。

广播模式下因为每个 Consumer 实例都需要处理全部的消息,因此这种模式仅推荐在通知推送、配置同步类小流量场景使用

消费者负载均衡(集群消费)​

如上文所述,消费组间广播消费场景下,每个消费者分组内只有一个消费者,因此不涉及消费者的负载均衡。

消费组内共享消费场景下,消费者分组内多个消费者共同分担消息,消息按照哪种逻辑分配给哪个消费者,就是由消费者负载均衡策略所决定的。

根据消费者类型的不同,消费者负载均衡策略分为以下两种模式:

  • 消息粒度负载均衡:PushConsumer和SimpleConsumer默认负载策略

  • 队列粒度负载均衡:PullConsumer默认负载策略

消息粒度负载均衡

使用范围

对于PushConsumer和SimpleConsumer类型的消费者,默认且仅使用。消息粒度负载均衡策略。

消息粒度负载均衡策略中,同一消费者分组内的多个消费者将按照消息粒度平均分摊主题中的所有消息,即同一个队列中的消息,可被平均分配给多个消费者共同消费。

消息粒度的负载均衡机制,是基于内部的单条消息确认语义实现的。消费者获取某条消息后,服务端会将该消息加锁,保证这条消息对其他消费者不可见,直到该消息消费成功或消费超时。因此,即使多个消费者同时消费同一队列的消息,服务端也可保证消息不会被多个消费者重复消费。

顺序消息负载机制

在顺序消息中,消息的顺序性指的是同一消息组内的多个消息之间的先后顺序。因此,顺序消息场景下,消息粒度负载均衡策略还需要保证同一消息组内的消息,按照服务端存储的先后顺序进行消费。不同消费者处理同一个消息组内的消息时,会严格按照先后顺序锁定消息状态,确保同一消息组的消息串行消费。

策略特点

相对于队列粒度负载均衡策略,消息粒度负载均衡策略有以下特点:

  • 消费分摊更均衡:对于传统队列级的负载均衡策略,如果队列数量和消费者数量不均衡,则可能会出现部分消费者空闲,或部分消费者处理过多消息的情况。消息粒度负载均衡策略无需关注消费者和队列的相对数量,能够更均匀地分摊消息。

  • 对非对等消费者更友好:在线上生产环境中,由于网络机房分区延迟、消费者物理资源规格不一致等原因,消费者的处理能力可能会不一致,如果按照队列分配消息,则可能出现部分消费者消息堆积、部分消费者空闲的情况。消息粒度负载均衡策略按需分配,消费者处理任务更均衡。

  • 队列分配运维更方便:传统基于绑定队列的负载均衡策略必须保证队列数量大于等于消费者数量,以免产生部分消费者获取不到队列出现空转的情况,而消息粒度负载均衡策略则无需关注队列数。

适用场景

消息粒度消费负载均衡策略下,同一队列内的消息离散地分布于多个消费者,适用于绝大多数在线事件处理的场景。只需要基本的消息处理能力,对消息之间没有批量聚合的诉求。而对于流式处理、聚合计算场景,需要明确地对消息进行聚合、批处理时,更适合使用队列粒度的负载均衡策略。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1986745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

吴恩达机器学习笔记

1.机器学习定义: 机器学习就是让机器从大量的数据集中学习,进而得到一个更加符合现实规律的模型,通过对模型的使用使得机器比以往表现的更好 2.监督学习: 从给定的训练数据集中学习出一个函数(模型参数)…

LLM(大语言模型)「Agent」开发教程-LangChain(三)

v1.0官方文档|最新文档 一、LangChain入门开发教程:Model I/O 二、基于LangChain的RAG开发教程 LangChain是一个能够利用大语言模型(LLM,Large Language Model)能力进行快速应用开发的框架: 高度抽象的组件…

分享一个基于微信小程序的流浪动物救助领养平台springboot(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

C++基础编程100题-035 OpenJudge-1.4-16 三角形判断

更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0104/16/ 描述 给定三个正整数,分别表示三条线段的长度,判断这三条线段能否构成一个三角形。 输入 输入共一行,包含三个正整数,分别表示三条线段的长度&#x…

数据资产:发展现状与未来展望

数据资产:发展现状与未来展望 数据资产作为当今数字经济发展的关键要素,正发挥着日益重要的作用。数据资产是被合法拥有或控制的,能进行计量的,为组织带来经济和社会价值的数据资源。它经历了从数据到数据资产的市场化过程&#x…

一文带你玩转全新采集配置 CRD:AliyunPipelineConfig

作者:玄飏 既然是一文玩转,自然要讲些背景 1.1. 什么是 iLogtail 采集配置 长话短说: SLS:阿里云日志服务,一站式提供数据采集、加工、查询与分析、可视化、告警、消费与投递等功能,全面提升您在研发、…

atsec增加Swift CSP评估资质

atsec信息安全评估员现已被Swift列为Swift客户安全计划(CSP:Customer Security Programme)认证评估员目录中的评估提供商,可以帮助全球金融机构评估其针对CSP强制性和咨询性控制的合规级别。在金融行业,Swift要求使用其…

NVIDIA Triton系列03-开发资源说明

NVIDIA Triton系列03-开发资源说明 大部分要学习 Triton 推理服务器的入门者,都会被搜索引擎或网上文章引导至官方的 https://developer.nvidia.com/nvidia-triton-inference-server 处(如下截图),然后从 “Get Started” 直接安…

基础岛-任务1:书生大模型全链路开源开放体系

视频地址: https://www.bilibili.com/video/BV18142187g5/ 书生大模型全链路开源开放体系–笔记 技术发展 inerLM2.5 支持100wtoken核心技术思路 数据合成 1.基于规则的构造代码 公式,函数,数学题解2.基于模型的数据扩充代码加注释3.基于人类反馈的数…

从ssm框架 到 spring框架 再到 springmvc框架 设计思想

一、在使用ssm框架的时候,从前端发送get请求到后端处理数据的完整流程是: WebServlet(name "getAll", value "/getAll") public class AddServelet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest reque…

FPGA知识基础之RAM--基于IP核的单端口RAM设计

目录 一、RAM简介1.1 基本特性1.2 RAM对电脑性能的影响1.3 RAM的应用场景 二、存储器的分类1.存储器分类2.RAM分类 三、实验任务四、程序设计1.系统模块2.波形绘制3.IP核设置4.代码编写RTL代码Testbench代码 五、仿真 提示:以下是本篇文章正文内容,下面案…

WebRTC 初探

前言 项目中有局域网投屏与文件传输的需求,所以研究了一下 webRTC,这里记录一下学习过程。 WebRTC 基本流程以及概念 下面以 1 对 1 音视频实时通话案例介绍 WebRTC 的基本流程以及概念 WebRTC 中的角色 WebRTC 终端,负责音视频采集、编解码、NAT 穿…

【书生大模型实战营第三期】基础岛 第2关 8G 显存玩转书生大模型 Demo

欢迎大家参与第三期书生大模型实战营!!! 1. 基础任务 任务描述:使用 Cli Demo 完成 InternLM2-Chat-1.8B 模型的部署,并生成 300 字小故事,记录复现过程并截图。 1. 首先创建开发机,并建立远程链…

操作系统03:调度算法和文件系统

文章目录 调度算法进程调度算法先来先服务调度算法最短作业优先调度算法高响应比优先调度算法时间片轮转调度算法最高优先级调度算法 内存页面置换算法最佳页面置换算法(OPT)先进先出置换算法(FIFO)最近最久未使用的置换算法&…

电赛必备-TI开发板MSPM0G3507开发应用教程-环境配置

这篇文章将手把手详细介绍如何安装及环境配置对MSPM0G3507进行开发 这个网址是TI德州仪器的官网: 模拟 | 嵌入式处理 | 半导体公司 | 德州仪器 TI.com.cn 这个网址直接复制,进入即可跳转我们需要的内容页面https://www.ti.com.cn/tool/cn/LP-MSPM0G350…

LLaMA- Adapter V2: Parameter-Efficient Visual Instruction Model

发表时间:28 Apr 2023 论文链接:https://arxiv.org/pdf/2304.15010 作者单位: Shanghai Artificial Intelligence Laboratory Motivation:如何有效地将大型语言模型 (LLM) 转换为指令追随者最近是一个流行的研究方向&#xff0…

MyBatisPlus简介及入门案例

MyBatisPlus简介 MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影响&…

【知识跨境电商API接口丨python数分实战】国际电商平台用户成交转化分析

今天这篇文章将给大家介绍国际电商平台用户成交转化分析案例。 01 初步思路 问题已经明确 GMV的下降,可能出在用户下单成交环节。 这里需要明确GMV下降是今年与去年相比吗?明确GMV下降到底如何判断出来的?对比的对象是什么?如…

2024免费文案生成器,一键生成原创文案

在自媒体时代的今天,文案创作需求日益增长,无论是营销推广、社交媒体运营,还是品牌宣传、内容创作,优质的文案都起着至关重要的作用。对于文案创作者来说,如何在有限的时间内创作出吸引人、有价值且独特的文案&#xf…

【Linux】成功解决“appropriate BINARY mode and that you have compiled UnZip properly”

【Linux】成功解决“appropriate BINARY mode and that you have compiled UnZip properly” 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓…