kafka的架构

一、架构图

Broker:一台 kafka 服务器就是一个 broker。一个kakfa集群由多个 broker 组成。一个 broker 可以容纳多个 topic。

Producer:消息生产者,就是向 kafka broker 发消息的客户端

Consumer:消息消费者,向 kafka broker 取消息的客户端。

Topic:可以理解为一个队列,一个 Topic 又分为一个或多个分区。一个topic可以有多个partition,每个partition可以有多个副本,一般是3个,副本分leader、follower角色

Consumer Group:这是 kafka 用来实现一个 topic 消息的广播(发给所有的 consumer)和单播(发给任意一个 consumer)的手段。一个 topic 可以有多个 Consumer Group。

Partition:为了实现扩展性,一个非常大的 topic 可以分布到多个 broker上,每个 partition 是一个有序的队列。partition 中的每条消息都会被分配一个有序的id(offset)。将消息发给 consumer,kafka 只保证按一个 partition 中的消息的顺序,不保证一个 topic 的整体(多个 partition 间)的顺序。

Offset:kafka 的存储文件都是按照 offset.kafka 来命名,用 offset 做名字的好处是方便查找。例如你想找位于 2049 的位置,只要找到 2048.kafka 的文件即可。当然 the first offset 就是 00000000000.kafka。

Kafka 是如何做到消息的有序性?

kafka 中的每个 partition 中的消息在写入时都是有序的,而且单独一个 partition 只能由一个消费者去消费,可以在里面保证消息的顺序性。但是分区之间的消息是不保证有序的。

kafka消费策略

kafka的三种语义

kafka为什么吞吐很大

相关推荐
Tadas-Gao3 小时前
基于规范驱动开发的下一代软件工程范式:从理论到实践
驱动开发·架构·系统架构·大模型·llm·软件工程
御坂10101号5 小时前
从暴力扫图到成本估算:SpiceDB 如何重构 ReBAC 性能引擎
算法·性能优化·架构·database
黄俊懿6 小时前
【架构师从入门到进阶】第一章:架构设计基础——第一节:架构设计的目的
架构·系统架构·架构设计
utmhikari7 小时前
【架构艺术】治理后端稳定性的一些实战经验
java·开发语言·后端·架构·系统架构·稳定性·后端开发
礼拜天没时间.8 小时前
Docker与Harbor迁移实战:从入门到生产级完整指南
linux·运维·docker·容器·架构·centos
黄俊懿8 小时前
【架构师从入门到进阶】第一章:架构设计基础——第二节:架构设计原则
分布式·后端·中间件·架构
技术传感器9 小时前
赋能智慧空间:看本体论如何破解城市更新运营难题
人工智能·深度学习·架构
小冷coding9 小时前
【项目】医疗数字化升级:基于Spring生态的合规化微服务架构实践
spring·微服务·架构
wzqllwy10 小时前
深入剖析微服务架构与 Spring Cloud
spring cloud·微服务·架构
没有bug.的程序员10 小时前
分布式配置深潜:Spring Cloud Config 与 Git 集成内核、版本回滚机制与多环境治理实战指南
java·分布式·git·spring cloud·分布式配置·版本回滚