Kafka的ISR和OSR的作用分别是什么

简介: Kafka的ISR和OSR的作用分别是什么

Kafka中的ISR(In-Sync Replicas)和OSR(Out-of-Sync Replicas)是关于Kafka副本管理的两个重要概念,它们在Kafka的高可用性和数据一致性方面起着关键作用。

ISR(In-Sync Replicas)

  1. 定义:ISR是指与Leader副本保持同步的一组Follower副本。这些副本已经复制了Leader上的所有数据,并且与Leader保持数据一致。
  2. 作用
    • 高可用性:ISR中的副本可以作为Leader的候选,如果Leader副本失败,可以从ISR中选举新的Leader,从而保证服务的连续性。
    • 数据一致性:在Kafka的复制机制中,只有ISR中的副本被视为有效的副本。这意味着,如果Leader副本发生故障,只有ISR中的副本可以被选举为新的Leader,从而确保数据的一致性不会被破坏。
    • 故障恢复:当Leader副本重启时,它会检查自己的日志与ISR中副本的日志是否一致。如果一致,它可以快速恢复服务;如果不一致,可能需要从ISR中的副本中同步数据。

OSR(Out-of-Sync Replicas)

  1. 定义:OSR是指那些没有与Leader副本保持同步的Follower副本。这些副本可能由于网络延迟、处理能力不足或其他原因而落后于Leader。
  2. 作用
    • 容错性:即使某些副本落后于Leader,Kafka集群仍然可以继续工作,因为只有ISR中的副本需要与Leader保持同步。
    • 数据恢复:如果Leader副本失败,而ISR中的副本不足以形成新的Leader,OSR中的副本可以被用来重建数据。但是,这可能会导致数据丢失,因为OSR副本可能没有复制Leader上的所有数据。
    • 负载均衡:在某些情况下,Follower副本可能会故意落后于Leader,以减轻Leader的负载或处理特定的工作负载。

总结

  • ISR是Kafka保证数据一致性和高可用性的关键机制。通过确保只有同步的副本可以成为Leader,Kafka可以避免数据不一致的问题。
  • OSR提供了额外的容错能力,允许集群在某些副本落后的情况下继续运行。但是,过度依赖OSR可能会增加数据丢失的风险。

在Kafka的配置中,可以通过replica.lag.time.max.ms参数来设置Follower副本落后于Leader的最大时间。如果Follower副本落后的时间超过这个阈值,它将从ISR列表中移除,成为OSR。通过这种方式,Kafka可以动态地管理副本的同步状态,以平衡性能和一致性的需求。

相关文章
|
13天前
|
消息中间件 JSON 大数据
大数据-65 Kafka 高级特性 分区 Broker自动再平衡 ISR 副本 宕机恢复再重平衡 实测
大数据-65 Kafka 高级特性 分区 Broker自动再平衡 ISR 副本 宕机恢复再重平衡 实测
36 4
|
17天前
|
消息中间件 Java 大数据
Kafka ISR机制详解!
本文详细解析了Kafka的ISR(In-Sync Replicas)机制,阐述其工作原理及如何确保消息的高可靠性和高可用性。ISR动态维护与Leader同步的副本集,通过不同ACK确认机制(如acks=0、acks=1、acks=all),平衡可靠性和性能。此外,ISR机制支持故障转移,当Leader失效时,可从ISR中选取新的Leader。文章还包括实例分析,展示了ISR在不同场景下的变化,并讨论了其优缺点,帮助读者更好地理解和应用ISR机制。
26 0
Kafka ISR机制详解!
|
5月前
|
消息中间件 监控 Kafka
【Kafka】分区副本中的 Leader 如果宕机但 ISR 却为空该如何处理
【4月更文挑战第12天】【Kafka】分区副本中的 Leader 如果宕机但 ISR 却为空该如何处理
|
5月前
|
消息中间件 运维 监控
【Kafka】分区副本什么情况下会从 ISR 中剔出
【4月更文挑战第12天】【Kafka】分区副本什么情况下会从 ISR 中剔出
|
5月前
|
消息中间件 运维 负载均衡
【Kakfa】Kafka 中 AR、ISR、OSR 三者的概念
【4月更文挑战第11天】【Kakfa】Kafka 中 AR、ISR、OSR 三者的概念
|
消息中间件 Kafka vr&ar
Kafka - AR 、ISR、OSR,以及HW和LEO之间的关系
Kafka - AR 、ISR、OSR,以及HW和LEO之间的关系
156 0
|
消息中间件 存储 缓存
副本与ISR设计--Kafka从入门到精通(十四)
副本与ISR设计--Kafka从入门到精通(十四)
副本与ISR设计--Kafka从入门到精通(十四)
|
消息中间件 存储 监控
生产故障|Kafka ISR频繁伸缩引发性能急剧下降
生产故障|Kafka ISR频繁伸缩引发性能急剧下降
生产故障|Kafka ISR频繁伸缩引发性能急剧下降
|
消息中间件 运维 监控
日均千亿消息量的 Kafka 集群频繁发生 ISR 变化,原因竟是...
某天晚上打球打得正嗨,突然间收到运维电话,说某个 Kafka 集群 RT 值非常高,使用该集群的用户也发现了消息堆积现象,此刻我意识到问题的严重性,于是急忙跑回办公室查看这个问题。
319 0
日均千亿消息量的 Kafka 集群频繁发生 ISR 变化,原因竟是...
|
消息中间件 Kafka 数据安全/隐私保护
Kafka ISR 副本同步机制
ISR(in-sync replica) 就是 Kafka 为某个分区维护的一组同步集合,即每个分区都有自己的一个 ISR 集合,处于 ISR 集合中的副本,意味着 follower 副本与 leader 副本保持同步状态,只有处于 ISR 集合中的副本才有资格被选举为 leader。一条 Kafka 消息,只有被 ISR 中的副本都接收到,才被视为“已同步”状态。这跟 zk 的同步机制不一样,zk 只需要超过半数节点写入,就可被视为已写入成功。
2066 0
Kafka ISR 副本同步机制