- 5
- 0
- 约6.67千字
- 约 16页
- 2022-03-03 发布于上海
- 举报
?
?
Kafka研究系列之架构设计
?
?
kafka设计
多个生产者- 主题 - 分区 - segment(index文件和log文件)
index 文件: key: 消息号 value: 消息在磁盘的地址
首先根据offset 二分找到索引文件, 然后根据偏移量找到消息的物理地址
Kafka使用ISR的方式则很好的均衡了确保数据不丢失以及吞吐率
如果要提高数据的可靠性,在设置request.required.acks=-1的同时,也要min.insync.replicas这个参数(可以在broker或者topic层面进行设置)的配合,这样才能发挥最大的功效
设置幂等
enable.idempotence,需要设置为ture,此时就会默认把acks设置为all, 同时设置重试次数
kafka架构图
消费者类图
生产者代码流程(追加器+发送器)
1. 根据key计算分区
2. 对key和val 进行序列化
3. 根据主题分区获得对应的双端对列,获得最后一个元素,?使用累加器追加到内存的bytebuffer中
4. 如果满了则调用sender进行批量发送给broker
消费者代码流程(Fetcher)
1. 根据分区查询主节点
2. 根据主题分区查询offset
3. 使用fetcher 从并发对列里获得数据
4. 获得成功发起下一次请求,将数据缓存在并发对列中
??
Re
原创力文档

文档评论(0)