kafka入门(九):副本

副本

副本(Replica),指的是分布式系统对数据和服务提供的一种冗余方式。

Kafka通过多副本机制实现故障自动转移,在Kafka集群中某个broker节点失效的情况下仍然保证服务可用。

kafka 副本之间是 一主多从的关系。

其中 leader 副本负责处理读写请求,follower 副本只负责与 leader 副本的消息同步。

副本处于不同的 broker中,当 leader 副本出现故障时,从 follower 副本中重新选举新的 leader 副本对外提供服务。

kafka 通过多副本机制实现了故障的自动转移,当 kafka集群中某个 broker 失效时仍然能保证服务可用。

ISR (In-Sync Replicas)

所有与 leader 副本保持一定程度同步的副本(包括leader副本在内) 组成 ISR (In-Sync Replicas)

只有在 ISR 集合中的副本才有资格被选举为新的 leader。

OSR (Out-of-Sync Replicas)

消息先发送到 leader 副本,然后 follower 副本才能从 leader 副本中拉取消息进行同步,同步期间 follower 副本相对 leader 副本会有一定程序的滞后。

与 leader 副本同步滞后过多的副本(不包括 leader副本) 组成 OSR (Out-of-Sync Replicas)。

leader副本负责维护和跟踪ISR集合中所有follower副本的滞后状态,当follower副本落后太多或失效时,leader副本会把它从ISR集合中剔除。

如果OSR集合中有follower副本追上了leader副本,那么leader副本会把它从OSR集合转移至ISR集合。

AR (Assigned Replicas)

分区中的所有副本统称为 AR(Assigned Replicas) 。 AR = ISR + OSR。

HW (High Watermark)

HW , 俗称"高水位"。它标识了一个特定的消息偏移量( offset ) , 消费者只能拉取到这个 offset 之前的消息 。

LW (Low Watermark):

LW是Low Watermark的缩写,俗称"低水位",代表AR集合中最小的logStartOffset值。副本的拉取请求(FetchRequest,它有可能触发新建日志分段而旧的被清理,进而导致logStartOffset的增加)和删除消息 请求(DeleteRecordRequest)都有可能促使LW的增长。

LEO (Log End Offset )

LEO, 它标识当前日志文件中下一条待写入消息的 offset。

分区 ISR 集合中的每个副本都会维护自身的 LEO。而 ISR 集合中最小的 LEO 即为分区的 HW, 对消费者而言只能消费 HW 之前的消息。

kafka入门文章

https://blog.csdn.net/sinat_32502451/category_12465196.html

资料来源:

《深入理解 Kafka-- 核心设计与实践原理》

相关推荐
yumgpkpm1 天前
Cloudera CDP7、CDH5、CDH6 在华为鲲鹏 ARM 麒麟KylinOS做到无缝切换平缓迁移过程
大数据·arm开发·华为·flink·spark·kafka·cloudera
树下水月1 天前
Easyoole 使用rdkafka 进行kafka的创建topic创建 删除 以及数据发布 订阅
分布式·kafka
Cat God 0071 天前
基于Docker搭建kafka集群
docker·容器·kafka
Cat God 0071 天前
基于 Docker 部署 Kafka(KRaft + SASL/PLAIN 认证)
docker·容器·kafka
KD1 天前
设计模式——责任链模式实战,优雅处理Kafka消息
后端·设计模式·kafka
原神启动12 天前
Kafka详解
分布式·kafka
一只懒鱼a2 天前
搭建kafka集群(安装包 + docker方式)
运维·容器·kafka
青春不流名2 天前
如何在Kafka中使用SSL/TLS证书认证
分布式·kafka·ssl
青春不流名2 天前
Kafka 的认证机制
kafka
hanyi_qwe2 天前
ZooKeeper+Kafka
分布式·zookeeper·kafka