kafka研究系列
文章平均质量分 93
猫哥灬01
话不在多,在于精
展开
-
Kafka研究系列之架构设计
kafka设计 多个生产者- 主题 - 分区 - segment(index文件和log文件) index 文件: key: 消息号 value: 消息在磁盘的地址 首先根据offset 二分找到索引文件, 然后根据偏移量找到消息的物理地址 Kafka使用ISR的方式则很好的均衡了确保数据不丢失以及吞吐率 如果要提高数据的可靠性,在设置request.required.acks=-1的同...原创 2019-10-29 11:44:09 · 218 阅读 · 1 评论 -
Kafka研究系列之时间轮TimerWheel
what 电商中经常会有些延时操作的业务,比如30分钟未支付则取消订单,kafka中消息到达broker后,写入延时队列,如果在超时时间内ISR列表节点没有全部同步消息,则返回客户端超时异常,因此时间轮的本质就是一个延时队列。 why java中自带的延时队列DeleyQueue,底层使用优先队列PriorityQueue实现,本质是一个小顶堆,在入队时需要和父节点不断比较,如果比父节点大,则插入,如果比父节点小,则交换当前位置和父节点的位置,循环比较,直到比父节点大为止。因...原创 2020-06-02 15:40:32 · 721 阅读 · 0 评论 -
kafka研究系列之事务实现
java代码 Properties props = new Properties(); props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); props.put("client.id", "ProducerTr原创 2020-06-09 11:13:32 · 290 阅读 · 0 评论 -
Kafka研究系列之kafka 如何避免脑裂?如何选举leader?
以下内容摘自:Kafka权威指南 第五章 5.2小节 脑裂问题 什么是脑裂? kafka中只有一个控制器controller 负责分区的leader选举,同步broker的新增或删除消息,但有时由于网络问题,可能同时有两个broker认为自己是controller,这时候其他的broker就会发生脑裂,不知道该听从谁的。 如何解决?controller epoch 每当新的control...原创 2019-03-13 10:11:35 · 8796 阅读 · 3 评论