婚庆网站设计说明书,网站建设做网站怎么做,网上推广营销,网站未备案可以做经营活动吗文章目录 kafka 副本的基本信息Leader选举过程Kafka Controllerkafka 分区副本Leader的选举流程实际演示① 查看first的详细信息#xff0c;注意观察副本分布情况② 停掉hadoop103上的kafka进程③ 再次查看first的相信信息#xff0c;观察副本分布④ 处理分区leader分布不均匀… 文章目录 kafka 副本的基本信息Leader选举过程Kafka Controllerkafka 分区副本Leader的选举流程实际演示① 查看first的详细信息注意观察副本分布情况② 停掉hadoop103上的kafka进程③ 再次查看first的相信信息观察副本分布④ 处理分区leader分布不均匀问题 leader和 follower故障处理细节follower故障处理细节被踢-重连-追上Hw-连接成功leader故障处理细节从ISR队列选取ar中靠前的节点选为leader新leader短则follower“剪”反之则向leader同步 kafka 副本的基本信息
参数名称描述kafka副本作用提高数据可靠性kafka副本个数默认1个生产环境中一般配置为2个保证数据可靠性但是过多的副本会增加磁盘存储空间、增加网络数据传输、降低kafka效率。kafka副本角色副本角色分为Leader和Follower。kafka生产者只会把数据发送到Leaderfollower会主动从Leader上同步数据。kafka中的AR是所有副本的统称Assigned Repllicas,AR ISR OSRISR表示和Leader保持同步默认30s的follower集合。OSR表示Follower与Leader副本同步时延迟过多的副本。 Leader选举过程
Kafka Controller
kafka集群中有一个broker的Controller会被选举为Controller Leader负责管理集群broker的上下线、所有的topic的分区副本分配和Leader选举等工作。
Controller的信息同步工作是依赖于Zookeeper的。 kafka 分区副本Leader的选举流程 Kafka是一个分布式消息系统具有分区和副本的概念以确保高可用性和容错性。在Kafka中每个分区都有一个领导者Leader和零个或多个副本Replicas。当分区的领导者Leader失败时会触发新的领导者选举过程确保分区的可用性。
以下是Kafka分区领导者选举的一般流程 原始领导者故障当Kafka集群中分区的当前领导者故障或者由于某种原因无法提供服务时领导者选举会被触发。 副本提名每个分区的副本都有可能成为新的领导者。首先副本需要“提名”自己作为新的领导者。这个提名会通过ZooKeeper或最新的KRaft元数据管理器在Kafka 2.8.0及更高版本中引入来完成。 提名标准副本提名自己的标准通常包括以下因素 副本是否具备最新的数据即最高的日志段offset。副本的健康状态例如是否在线、可用性等。副本的副本同步延迟。 提名协调Kafka通过ZooKeeper或KRaft元数据管理器来协调各个副本的提名过程。这些管理器会比较各个提名并选择一个新的领导者。 提名通知一旦新的领导者被选出Kafka会通知所有副本将新领导者的ID分发给它们。 新领导者选举完成一旦新领导者被选出并通知其他副本分区将有一个新的领导者。客户端请求将路由到新领导者确保消息的读写操作可以继续。
需要注意的是Kafka的分区领导者选举是一种自愿的过程只有当当前领导者无法提供服务时才会触发这一过程。这有助于确保Kafka的高可用性和容错性因为在任何时刻都有多个副本可用以提供数据服务。 实际演示
① 查看first的详细信息注意观察副本分布情况 [xxxhadoop102 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --describe --topic first
Topic: first TopicId: aUFTM5wES7eSBiuSKT0UpA PartitionCount: 3 ReplicationFactor: 3 Configs: segment.bytes1073741824Topic: first Partition: 0 Leader: 102 Replicas: 102,104,103 Isr: 102,104,103Topic: first Partition: 1 Leader: 103 Replicas: 103,102,104 Isr: 103,102,104Topic: first Partition: 2 Leader: 104 Replicas: 104,103,102 Isr: 104,103,102 ② 停掉hadoop103上的kafka进程 [xxxhadoop103 kafka]$ bin/kafka-server-stop.sh③ 再次查看first的相信信息观察副本分布 [xxxhadoop102 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --describe --topic first
Topic: first TopicId: aUFTM5wES7eSBiuSKT0UpA PartitionCount: 3 ReplicationFactor: 3 Configs: segment.bytes1073741824Topic: first Partition: 0 Leader: 102 Replicas: 102,104,103 Isr: 102,104Topic: first Partition: 1 Leader: 102 Replicas: 103,102,104 Isr: 102,104Topic: first Partition: 2 Leader: 104 Replicas: 104,103,102 Isr: 104,102④ 处理分区leader分布不均匀问题 [xxxhadoop102 kafka]$ bin/kafka-leader-election.sh --bootstrap-server hadoop102:9092 --topic first --election-type preferred --partition 0
[xxxhadoop102 kafka]$ bin/kafka-leader-election.sh --bootstrap-server hadoop102:9092 --topic first --election-type preferred --partition 1
[xxxhadoop102 kafka]$ bin/kafka-leader-election.sh --bootstrap-server hadoop102:9092 --topic first --election-type preferred --partition 2
[xxxhadoop102 kafka]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --describe --topic first
Topic: first TopicId: aUFTM5wES7eSBiuSKT0UpA PartitionCount: 3 ReplicationFactor: 3 Configs: segment.bytes1073741824Topic: first Partition: 0 Leader: 102 Replicas: 102,104,103 Isr: 102,104,103Topic: first Partition: 1 Leader: 103 Replicas: 103,102,104 Isr: 102,104,103Topic: first Partition: 2 Leader: 104 Replicas: 104,103,102 Isr: 104,102,103 leader和 follower故障处理细节
follower故障处理细节被踢-重连-追上Hw-连接成功
follower发生故障后会被临时踢出ISR待该follower恢复后follower会读取本地磁盘记录的上次的HW并将log文件高于HW的部分截取掉HW之前每个节点都有故安全从HW开始向leader进行同步。等该follower的LEO大于等于该Partition的HW即follower追上leader之后就可以重新加入ISR了 leader故障处理细节从ISR队列选取ar中靠前的节点选为leader新leader短则follower“剪”反之则向leader同步
eader发生故障之后会从ISR中选出一个新的leader之后为保证多个副本之间的数据一致性其余的follower会先将各自的log文件高于HW的部分截掉然后从新的leader同步数据。
注意这只能保证副本之间的数据一致性并不能保证数据不丢失或者不重复。