Kafka深度分析


立即下载 苞米地里的蒙面妖
2024-08-22
consumer 数据 broker 消息 Kafka kafka Topic 拷贝 message 保存
1.7 MB

Kafka深度分析
架构
kafka是显式分布式架构, producer、broker(Kafka)和 consumer 都可以有多个。 Kafka的运
行依赖于 ZooKeeper,Producer 推送消息给 kafka,Consumer 从 kafka 拉消息。
kafka关键技术点
(1) zero-copy
在 Kafka 上,有两个原因可能导致低效: 1)太多的网络请求 2)过多的字节拷贝。为了提
高效率,Kafka把 message分成一组一组的, 每次请求会把一组 message发给相应的 consumer。
此外,为了减少字节拷贝,采用了 sendfile 系统调用。为了理解 sendfile 原理,先说一下传
统的利用 socket发送文件要进行拷贝:
Sendfile 系统调用:
(2) Exactly once message transfer
怎样记录每个 consumer 处理的信息的状态?在 Kafka中仅保存了每个 consumer 已经处理数
据的 offset。这样有两个好处: 1)保存的数据量少 2)当 consumer 出错时,重新启动 consumer
处理数据时,只需从最近的 offset 开始处理数据即可。
(3)Push/pull
Producer 向 Kafka(push)推数据, consumer 从 kafka 拉( pull)数据。
(4)负载均衡和容错
Producer 和 broker 之间没有负载均衡机制。
broker 和 consumer 之间利用 zookeeper 进行负载均衡。所有 broker 和 consumer 都会在
zookeeper 中进行注册,且 zookeeper 会保存他们的一些元数据信息。如果某个 broker 和
consumer 发生了变化,所有其他的 broker 和 consumer 都会得到通知。
kafka术语
Topic
Topic, 是 KAFKA对消息分类的依据 ;一条消息 ,必须有一个与之对应的 Topic;
比如现在又两个 Topic,分别是 TopicA 和 TopicB,Producer 向 TopicA 发送一个消息
messageA,然后向 TopicB 发送一个消息 messaeB;那么 ,


consumer/数据/broker/消息/Kafka/kafka/Topic/拷贝/message/保存/ consumer/数据/broker/消息/Kafka/kafka/Topic/拷贝/message/保存/
-1 条回复
登录 后才能参与评论
-->