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为什么吞吐很大

相关推荐
鹏北海7 分钟前
多标签页登录状态同步:一个简单而有效的解决方案
前端·面试·架构
Xの哲學43 分钟前
Linux 分区表深度技术剖析
linux·网络·算法·架构·边缘计算
TracyCoder1231 小时前
微服务概念理解学习笔记
学习·微服务·架构
小璞2 小时前
六、React 并发模式:让应用"感觉"更快的架构智慧
前端·react.js·架构
ALex_zry2 小时前
高并发系统渐进式改造技术调研报告:策略、架构与实战
java·运维·架构
木易 士心2 小时前
WebSocket 与 MQTT 在即时通讯中的深度对比与架构选型指南
websocket·网络协议·架构
2501_941142132 小时前
基于 Kotlin 构建移动端高并发后台服务与实时数据同步系统的架构设计与工程实践分享
kafka
Tadas-Gao3 小时前
Spring Boot 4.0架构革新:构建更精简、更安全、更高效的Java应用
java·spring boot·分布式·微服务·云原生·架构·系统架构
BG8EQB3 小时前
开发者的存储救赎计划:从SQL到云原生的架构演进
sql·云原生·架构
Leinwin3 小时前
微软发布全新一代 Arm 架构云原生处理器 Cobalt 200
arm开发·microsoft·架构