其实不明白这里的数据一致性是什么数据一致性?生产者生产的消息和消费者消费的消息一致,还是 Leader 副本挂了,消费者读到的消息也是一致的?前者包含后者。
Leader 副本挂了,消费者读到的消息也是一致的
- 自动故障转移:
- 当检测到 Leader 副本不可用时,Kafka 会自动从 ISR(In-Sync Replicas)中选择一个新的 Leader。
- 这个过程通常是快速的,通常在几秒钟内完成。
- ISR 机制:
- 在正常情况下,ISR 中包含多个与 Leader 同步的副本。
- 当 Leader 挂掉后,新的 Leader 会在 ISR 中选取,因此新的 Leader 已经包含了最新的数据。
- 消费者重平衡:
- 如果消费者组中的消费者正在消费某个分区的数据,当 Leader 发生切换时,消费者可能会暂时感知不到变化。
- 不过,消费者组会定期进行重平衡(rebalance),以确保所有消费者能够获取到最新的分区信息。
- 在重平衡过程中,消费者会重新分配分区,并从新的 Leader 副本中读取数据。
生产者生产的消息和消费者消费的消息一致
生产端、Broker 端、消费端。