消息队列中的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分别消费了一次。

相关推荐
程序员鱼皮15 分钟前
前特斯拉 AI 总监:AI 编程最大的谎言,是 “提效”
前端·后端·ai·程序员·开发
好好研究1 小时前
SpringBoot使用外置Tomcat
spring boot·后端·tomcat
索荣荣1 小时前
Spring Boot 实现DOCX转PDF(基于docx4j的轻量级开源方案)
spring boot·后端·pdf
mit6.8241 小时前
[todo]10个常见的后端框架
后端
没有bug.的程序员1 小时前
Spring Boot 与 Sleuth:分布式链路追踪的集成、原理与线上故障排查实战
java·spring boot·分布式·后端·分布式链路追踪·sleuth·线上故障排查
爱敲代码的憨仔2 小时前
Spring-AOP
java·后端·spring
短剑重铸之日2 小时前
《设计模式》第四篇:观察者模式
java·后端·观察者模式·设计模式
Hx_Ma162 小时前
SpringBoot注册格式化器
java·spring boot·后端
乔江seven2 小时前
【python轻量级Web框架 Flask 】1 Flask 初识
开发语言·后端·python·flask
知识即是力量ol2 小时前
一次完整的 Spring Security JWT 鉴权链路解析
java·后端·spring·鉴权·springsecurity