赞
踩
Kafka的分区是将数据在主题(Topic
)中逻辑上划分成多个片段的机制。
分区使得数据可以被水平扩展,提高了Kafka的可伸缩性和吞吐量,并允许数据在集群中分布和并行处理。
(1)数据分布和负载均衡:
(2)并行处理:
(3)顺序保证:
(1)创建和删除:
(2)动态调整:
(3)分区分配策略:
(4)分区副本:
(5)分区Leader和副本:
Leader
副本,负责处理该分区的所有读写请求,而其他副本则作为Follower
副本,从Leader
副本同步数据,以实现高可用和故障转移。Kafka的副本(Replicas
)是指在分区(Partition
)级别对数据的冗余备份。每个分区可以配置多个副本,副本之间存储的是相同的数据。
(1)数据冗余和容错性:
Kafka
使用副本机制来确保数据的冗余存储和容错性。Broker
节点上,一旦某个节点出现故障,系统可以从其他副本中继续提供服务,保证数据不丢失。(2)提高读取性能:
(3)提高写入吞吐量:
(4)故障转移:
(1)Leader 和 Followers:
Leader
副本和零个或多个 Followers 副本。(2)数据同步:
Leader
副本会将写入操作异步地复制到 Followers 副本,一般情况下,写入操作在 Leader 副本成功提交后就会被复制到 Followers 副本,从而保证数据的一致性。(3)ISR(In-Sync Replicas
):
ISR 是指与 Leader 副本保持同步的 Followers 副本集合。
如果某个副本落后于 Leader 副本太多,将会被从 ISR 中移除,直到其追赶上 Leader 副本的进度。
(4)AR(Assigned Repllicas
)。
(5)默认副本
Kafka集群中有一个broker
的Controller会被选举为Controller Leader
,负责管理集群broker的上下线,所有topic的分区副本分配和Leader选举等工作。
Controller的信息同步工作是依赖于Zookeeper的。
当 Leader 副本发生故障时,Kafka 集群会从 ISR 中选择一个副本作为新的 Leader 副本,以保证分区的可用性。
这个过程是自动进行的,由 Kafka 控制器(Controller
)负责执行。
下面是副本选举的步骤:
(1)领导者副本失效检测:
Kafka 集群中的每个节点都会监视分区的领导者副本的状态。如果领导者副本失效,即无法响应请求或已经停止工作,节点会检测到这一情况。
(2)副本选择:
Assigned Repllicas
)中排在前面的优先。例如ar[1,0,2],isr[1,0,2,那么leader就会按照1,0,2的顺序轮询。(3)副本选举通知:
(4)选举结果确认:
(5)客户端重定向:
Follwer:
Leader:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。