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

相关推荐
前端旅人_cs16 分钟前
VITE + 邦联模块(module federation)实现
架构·前端框架
桂月二二1 小时前
云原生容器编排:Kubernetes的架构演进与实践
云原生·架构·kubernetes
李豆豆喵1 小时前
第42天:WEB攻防-PHP应用&MYSQL架构&SQL注入&跨库查询&文件读写&权限操作
sql·mysql·架构
不爱学习的小枫1 小时前
spark常见的submit参数
大数据·分布式·spark
Goboy2 小时前
老婆问我:“大模型的 Token 究竟是个啥?”
后端·程序员·架构
前期后期2 小时前
Android Compose是如何使用什么架构,多个Activity?还是Fragment?compose的ui又是如何卸载和挂载的呢?
android·ui·架构·kotlin
紫雾凌寒11 小时前
计算机视觉应用|自动驾驶的感知革命:多传感器融合架构的技术演进与落地实践
人工智能·机器学习·计算机视觉·架构·自动驾驶·多传感器融合·waymo
种豆走天下12 小时前
Zookeeper学习
分布式·学习·zookeeper
WeiLai111213 小时前
面试基础--高并发高可用架构深度实践:降级熔断(Hystrix vs Sentinel)核心原理与源码解析
java·分布式·后端·hystrix·面试·架构·sentinel
isolusion15 小时前
中间件与分布式系统:现代计算架构的核心
中间件·架构