- 解耦合
- 持久化
- 扩展与容灾
- 顺序保证
- 缓冲&峰值处理能力
- 异步通信
1. Kafka消息是如何存储的?
1. Kafka消息是按topic组织的,*topic可以分多个partition*。
2. partition是分段的,每个段叫LogSegment,包含一个日志文件和一个索引文件。
2. 如何查找指定offset的消息?
1. 先用二分查找确定是在哪一个LogSegment中。
2. 用二分查找LogSegment的索引文件,定位消息在数据文件的位置
3. 在数据文件中,从开始位置顺序扫描直到找到消息。
3. 总结
Kafka的消息存储采用了分区、分段、稀疏索引等方式达到高效查询的目的。
网友评论