是什么?
高吞吐的分布式消息中间件。
关键名词
broker:kafka的服务器实例
topic:一个消息的主题
partition:分区
producer:消息生产者
comsumer:消息消费者
comsumer group:消费者组
offset:一条消息在流中的偏移量
分区与消费
1.分区在producer端进行
2.一个分区只会被一个消费者消费
负载均衡方式
主从分布策略
分区会先随即定位到一个broker,然后再顺序分布下去
持久化存储
消息格式
消息内容查找过程
1.找个topic对应分区
2.通过二分查找在分区中找到对应段
3.通过消息下标在段索引(稀疏索引)中找到相应位置
4.通过最近下标在段找到对应位置后,就可以按顺序查找到具体消息
过期数据清理策略
直接清理
指定时间
指定大小
压缩
根据key删除历史数据,只保留key的最后一次数据
读写策略
顺序读写
页缓存+flush策略
ZeroCopy技术
常规传输:
Zero传输: