消息队列中的topic,partition,offset,broker,消费者组

1个topic的消息会分布到多个partition分区中,每个partition中的每条消息都有一个唯一编号 offset(消费者可以通过记录这个offset来知道自己读到了哪个位置,下次接着从这往下读)

一个broker中存着来自不同topic的partition,比如topicA的partition1,topicB的partition2,topicC的partition3......,所以从物理存储来看:topic其实只是一个概念,并不是真实存在的

同一个消费组内的不同消费者是"同事"关系。它们共同分担一个 Topic 的所有 Partitions,目的是为了"更快地"处理完所有消息。一个消息只会被组内的一个"同事"处理。

不同的消费组各自独立地消费**同一个 Topic(前提是这些消费者组都订阅了这个topic)**的完整数据,互不干扰。一个消息会被每一个"订阅者"(消费组)都处理一次。

复制代码

在 Group-A 内部: 组内的某一台机器(比如 Consumer-A1)会获取并处理消息 M。组内的其他机器(Consumer-A2, Consumer-A3)不会再处理这条消息。 在 Group-B 内部: 组内的某一台机器(比如 Consumer-B1)会获取并处理同一条消息 M。 在 Group-C 内部: 组内的某一台机器(比如 Consumer-C1)也会获取并处理同一条消息 M 最终结果是:消息M Consumer-A1 Consumer-B1 Consumer-C1分别消费了一次。

相关推荐
IT_陈寒9 小时前
Python的GIL让我多写了500行代码
前端·人工智能·后端
IT爱学堂10 小时前
精讲软件设计师(软考中级)一站式通关课_实战课程_慕课网
后端
战天战地站房顶10 小时前
在 Windows Docker 中部署 PostgreSQL 17 + pgvector 完整指南
后端
卷无止境10 小时前
FastAPI Guard 全解析,从概念到工程落地的实战指南
后端·python
卷无止境10 小时前
FastAPI Users 全面解析:概念、原理与工程实战
后端·python
程序员爱钓鱼10 小时前
Go switch 详解
后端·面试·go
程序员爱钓鱼10 小时前
Rust Struct结构体详解:定义自己的复杂数据类型
后端·面试·rust
风流 少年10 小时前
Spring AI 2.0:MCP
java·后端·spring
北斗落凡尘11 小时前
LangGraph 入门实战(7)
后端·langchain
uzong11 小时前
业务新老系统数据迁移-负责人经验总结和复盘
后端