ISR(In-Sync Replica)是 Kafka 中一个重大的概念,用来保证数据的可靠性和一致性。在 Kafka 中,每个分区都有多个副本,其中一个为 Leader 副本,负责处理读写请求;其它为 Follower 副本,负责复制 Leader 副本中的数据。
ISR 是 Leader 副本和 Follower 副本之间的一种状态。当一个副本与 Leader 副本的数据同步达到必定程度后,它就会被认为是 ISR 中的一部分。只有在 ISR 中的副本才能参与数据读写,也才能被选举为 Leader 副本。如果一个 Follower 副本与 Leader 副本的数据同步过程中出现异常,它就会被从 ISR 中移除,直到同步正常后再重新加入。
通过 ISR,Kafka 可以保证以下两个方面的数据可靠性:
- 数据备份
当一个副本被加入 ISR 中后,它会与 Leader 副本保持同步。当 Leader 副本出现故障时,系统会从 ISR 中选取一个副本作为新的 Leader 副本,确保数据不会丢失。
- 数据一致性
只有在 ISR 中的副本才能参与数据读写。这样可以确保每个消费者消费到的消息都是一致的,并且避免了数据读写的冲突。
需要注意的是,ISR 的大小对 Kafka 的性能和可靠性有着很大的影响。如果 ISR 的大小过小,可能会导致副本无法及时同步,从而导致数据不一致或丢失;如果 ISR 的大小过大,可能会降低 Kafka 的吞吐量。因此,在实际应用中,需要根据实际情况来合理配置 ISR 的大小。

© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END





![[C++探索之旅] 第一部分第十一课:小练习,猜单词 - 鹿快](https://img.lukuai.com/blogimg/20251015/da217e2245754101b3d2ef80869e9de2.jpg)










暂无评论内容