Reliability

Replica

AR, ISR, LEO, HW

消息追加的过程:

  1. 生产者客户端发送消息至 leader 副本(副本 1)中。
  2. 消息被追加到 leader 副本的本地日志,并且会更新日志的偏移量。
  3. follower 副本(副本 2 和副本 3)向 leader 副本请求同步数据。
  4. leader 副本所在的服务器读取本地日志,并更新对应拉取的 follower 副本的信息。
  5. leader 副本所在的服务器将拉取结果返回给 follower 副本。
  6. follower 副本收到 leader 副本返回的拉取结果,将消息追加到本地日志中,并更新日志的偏移量信息。

Log Sync

日志同步机制的一个基本原则就是:如果告知客户端已经成功提交了某条消息,那么即使 leader 宕机,也要保证新选举出来的 leader 中能够包含这条消息。

Reliability Analysis

就 Kafka 而言,越多的副本数越能够保证数据的可靠性,副本数可以在创建主题时配置,也可以在后期修改,不过副本数越多也会引起磁盘、网络带宽的浪费,同时会引起性能的下降。