在Kafka中,ISR(In-Sync Replicas)是指那些与 leader 副本保持同步的副本。ISR 中的副本表示已经复制了 leader 副本上的所有消息,这样当 leader 副本宕机时,ISR 中的副本可以迅速接替成为新的 leader。当 ISR 中的某个副本因为一些原因不再与 leader 副本保持同步时,它可能会被踢出 ISR。
以下是一些情况下,一个 Broker 可能会从 ISR 中踢出去:
replica.lag.max.messages
来限制一个 ISR 中副本的最大消息延迟。如果 ISR 中的副本落后于 leader 副本的消息数量超过了这个阈值,那么它可能会被踢出 ISR。
min.insync.replicas
,它指定了 ISR 的最小副本数量。如果 ISR 的大小小于这个阈值,那么 leader 副本可能会拒绝写入新消息,以保证消息的可靠性。这也可能导致 ISR 中的副本被踢出 ISR。
在上述情况中,如果 ISR 中的副本被踢出,Kafka 将会记录相应的日志信息,同时会尽可能地选择其他同步复制的副本来加入 ISR,以确保 ISR 中仍有足够数量的副本用于消息的可靠性和容错性。ISR 的维护是 Kafka 保持数据一致性和高可用性的重要机制之一。
Proudly powered by WordPress