Kafka 副本模块 ReplicaManager
Kafka 的 Replication Mechanism 是为了保证 Kafka 的高可用性,也就是说一个每个分区可以有多个副本,并且会其副本集合中(AR) 选出一个副本作为 Leader 副本,所有的读写请求都由选举出来的 Leader 副本处理
Kafka 延迟操作(二)DelayedProduce
Kafka Producer ack 设置为 all,需要所有的ISR 都接收到这条消息后才会返回。这里就用到了延迟操作。
Kafka 日志模块(四)LogManager
Kafka 的所有的消息都是通过日志来存储的,它是通过 LogManager 来进行初始化的,Log 类是真正操作日志的,LogManager 是用来管理 Log 的。
Kafka 日志模块(一)Log
Kafka 使用`日志文件`的方式保存生产者发送的消息。每条消息都有一个 `offset` 值来标识它在分区中的偏移量,这个offset 是`逻辑值`,并不是消息实际存放的物理地址。