问答题640/1053Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么?

难度:
2021-11-02 创建

参考答案:

在 Kafka 中,ISRAR 都是与消息副本和分区复制机制相关的重要概念,它们用于确保 Kafka 集群的高可用性、容错性和数据一致性。下面我们详细解释这两个概念,并讨论 ISR 的伸缩(scaling)。

1. ISR(In-Sync Replicas)

ISR 是指 同步副本(In-Sync Replicas),它包含了一个分区的所有副本(包括 Leader 和 Follower),这些副本的日志已经完全同步,且处于一致状态。

1.1 ISR 的作用

  • 确保数据一致性:Kafka 中的每个分区有多个副本,其中一个是 Leader,其他的是 Follower。只有那些与 Leader 完全同步的 Follower 副本才会被加入到 ISR 列表中。ISR 列表中的副本能够保证数据的一致性和可靠性。
  • 保证副本的数据同步:当分区的 Leader 副本接收到新的数据写入时,这些数据会被同步到所有 ISR 中的副本。只有 ISR 中的副本才被认为是“健康的”,即它们可以继续作为备份副本参与选举和提供服务。
  • 保证数据可靠性:当生产者将消息发送到 Kafka 时,它会等待 ISR 中的副本确认消息已成功写入。如果消息没有被至少一个副本同步,Kafka 会认为这条消息尚未被“提交”,从而提高系统的可靠性。

1.2 ISR 中副本的加入和移除

  • 副本加入 ISR:当 Follower 副本成功从 Leader 副本同步数据时,它会被加入到 ISR 列表中。Kafka 会确保 ISR 中的副本与 Leader 保持同步。
  • 副本移出 ISR:如果某个副本落后于 Leader 副本,无法及时同步数据,它会被移出 ISR 列表。这可能是因为网络延迟、磁盘 I/O 等原因,导致副本无法及时同步。移出 ISR 的副本不能参与 Leader 选举,并且无法提供消息的备份作用。

1.3 ISR 的伸缩

ISR 伸缩 指的是随着 Kafka 集群的负载变化,某个分区的 ISR 列表会动态变化。这个过程由 Kafka 的 自动副本同步机制分区迁移机制来管理。

  • 增加 ISR 副本:当一个 Kafka Broker 恢复正常工作,并且开始从 Leader 副本同步数据时,它会重新加入到 ISR 中。如果某个副本落后于 Leader,Kafka 会触发重新同步过程,并将其重新加入到 ISR 列表中。
  • 移除 ISR 副本:当一个副本无法在预定时间内同步数据,Kafka 会将其从 ISR 中移除。Kafka 会根据配置的最大同步延迟时间(如 replica.lag.time.max.ms)决定是否将副本移出 ISR。副本被移除时,它就无法参与 Leader 选举。
  • ISR 伸缩的影响:如果 ISR 中的副本数量少于指定的最小副本数(如 min.insync.replicas),Kafka 会拒绝生产者的写请求,直到 ISR 中有足够的副本可以保证数据的可靠性。这个机制保证了 Kafka 在面对网络问题或节点故障时,仍然能够保证一定的数据一致性和可靠性。

2. AR(Available Replicas)

AR 是指 可用副本(Available Replicas),它表示 Kafka 中一个分区的所有副本,包括 Leader 副本和 Follower 副本。与 ISR 不同,AR 列表中的副本不要求与 Leader 完全同步,只要它们在集群中是可用的,就会被包括在 AR 中。

2.1 AR 的作用

  • 副本可用性:AR 列表中的副本表示这些副本是正常工作的,并且可以在需要时提供服务。例如,如果 Leader 副本故障,AR 中的 Follower 副本会被选举为新的 Leader。
  • 副本的健康状态:一个分区的 AR 列表包括所有正在运行的副本,无论它们是否与 Leader 保持同步。AR 主要关注副本的可用性,而不是它们的数据同步状态。

2.2 AR 和 ISR 的区别

  • 同步与可用性:ISR 关注副本的同步状态,只有那些与 Leader 完全同步的副本才会被包括在 ISR 中。AR 则关注副本是否可用,所有正常运行的副本都会被包括在 AR 中,即使它们没有与 Leader 保持同步。
  • Leader 选举:当 Leader 副本故障时,Kafka 会从 AR 中选择一个 Follower 副本来进行 Leader 选举。而在 Leader 选举时,Kafka 会优先选择在 ISR 中的副本,以确保选举出的副本的数据一致性。
  • 副本的健康状态:AR 关注副本的可用性,而 ISR 关注副本的数据同步状态。

最近更新时间:2024-12-24