Kafka Server架构

ReActor模式

KafkaProducer-Server端

RequestQueue 可以 限速 保护 Kafka集群不被大量请求 压垮
日志存储
Log 分为多个LogSegment,LogSegment 对应磁盘上的一个日志文件和一个索引文件,日志文件记录消息,索引文件保存了消息的索引,随着消息的不断写入,日志文件的大小达到一个阈值就创建新的日志文件和索引文件继续写后面的消息
用稀疏索引的方式为日志文件中的部分消息建立索引

LOG 对多个LogSegment对象的顺序组合,为了快速定位 LogSegment,Log使用跳表SkipList对 LogSegment进行管理

TimingWheel
时间轮 环形队列
延迟操作组件
- 延迟操作:kafka将一些需要等待满足一定条件之后才触发的操作成为延迟操作,并将这些操作定义为一个抽象类DelayedOperation。
- kafka的延迟组件有DelayedProduce、DelayedFetch、DelayedHeartbeat、DelayedJoin、DelayedCreateTopics,这些都继承于DelayedOperation抽象类,分别用来协助相应的组件对不同的请求完成延迟处理。
Ack=-1的时候 需要所有副本 都 写好数据 再返回结果,这个返回结果的操作 就是个延迟操作

ZooKeeper中存储的信息

文档信息
- 本文作者:Jessica
- 本文链接:https://jessica0530.github.io/2020/08/15/Kafka-Server%E7%AB%AF%E6%9E%B6%E6%9E%84/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)