Kafka系列(23)Kafka副本机制详解
所谓副本机制,也可称为备份机制,通常是指分布式系统在多台网络互联的机器上保存相同的数据拷贝。
副本机制的好处:
1提供数据冗余,即使系统部分组件失效,系统依然能够继续运转,因此增加了整体可用性以及数据持久性
2提供高伸缩性,支持横向扩展,能够通过增加机器的方式提升读能力,进而提高读操作通吐量
3改善数据局部性,允许数据放入与用户地理位置相近的地方,从而降低系统延迟
kafka 只能提供好处1 没能提供好处2和3
副本机制依然是kafka架构的核心所在,也是Kafka确保系统高可用和消费高持久性的重要基石
副本定义
Kafka是有主题概念的,而每个主题又进一步划分为若干个分区,副本的概念实际上是在分区层级下定义的,每个分区配置有若干副本
副本,本质是一个只能追加写消息的提交日志。
副本角色
基于领导者的副本机制
Kafka的追随者副本是不对外提供服务的,因此Kafka没能提供横向扩展以及改善局部性。
这种实现的原因
1方便实现 read-your-writes
2 方便实现单调读 Monotonic reads 如果所有的读请求都由Leader来处理,那么Kafka就很容易实现单调读一致性
In-sync Replicas (ISR) 所有与Leader同步的副本
Kafka要明确告诉我们,追随者副本到底在什么条件下才算与Leader同步
Kafka判断Follower 副本是否与Leader副本同步的标准,不是看相差的消息数,而是另有玄机
这个标准是Broker端参数replica.lag.times.max.mx 这个参数的含义是Follower 副本能够落后Leader副本的最长时间间隔,默认是10秒
Unclean 领导者选举
ISR列表为空,表示leader副本挂掉了,需要重新选择Leader
Kafka 把所有不在ISR中存活的副本都被称为非同步副本
unclean.leader.election.enable控制是否允许Unclean领导者选举
开启以上参数,会造成消息丢失,好处是提高了可用性;禁用Unclean领导者选举好处在于维护了数据的一致性,避免消息丢失。
CAP 一致性,可用性,分区容错性
- Java学习系列(九)Java面向对象之异常机制详解
- Kafka 存储机制和副本
- JavaScript系列----AJAX机制详解以及跨域通信
- Spring深度系列-java的动态代理机制详解
- Kafka通过timestamp获取offset的机制详解
- 分布式消息队列kafka系列介绍 — 配置文件详解
- Kafka副本同步机制理解
- 深入理解 Kafka 副本机制
- Android异步消息机制Handler详解,源码剖析(API 23)
- 【转】kafka-文件存储机制详解
- MongoDB副本集配置系列十:MongoDB local库详解和数据同步原理
- Kafka副本同步机制
- 分布式消息队列kafka系列介绍 — 配置文件详解
- Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解
- Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解
- kafka之副本机制
- kafka副本机制之数据可靠性
- Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解
- Kafka副本同步机制理解
- MongoDB副本集配置系列七:MongoDB oplog详解