【Kafka原理】分区的leader和follower

这篇具有很好参考价值的文章主要介绍了【Kafka原理】分区的leader和follower。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、leader和follower

在Kafka中,每个topic都可以配置多个分区以及多个副本。每个分区都有一个leader以及0个或者多个follower。在创建topic时,Kafka会将每个分区的leader均匀地分配在每个broker上。使用Kafka时,是感觉不到leader和follower存在的。

  • Kafka中的leader负责处理读写操作,而follower只是负责副本数据的同步
  • 如果leader出现故障,其他follower会被重新选举为leader
  • follower像是一个消费者,不断拉取对应分区的leader数据,并保存到日志数据文件中
    kafka的leader和follower,Kafka,kafka
    kafka的leader和follower,Kafka,kafka

二、AR、ISR、OSR

  • AR(Assigned Replica 已分配的副本):表示某个分区的所有副本
  • ISR(In-Sync-Replica 在同步中的副本):表示所有与leader副本保持一定程度同步的副本(包括leader副本在内)
  • OSR(Out-of-Sync-Replica 不在同步中的副本):表示所有与leader副本同步滞后过多的follower副本(不包括leader副本)
  • AR = ISR + OSR
  • 正常情况下,所有的follower副本都应该与leader副本保持同步,即:AR = ISR,OSR集合为空
    kafka的leader和follower,Kafka,kafka

四、leader选举

1. Controller的介绍

  • Kafka启动时,会在所有的broker(集群节点)中选择一个controller
  • 之前的leader和follower是针对分区而言的,而controller是针对broker的
  • 创建topic、添加分区、修改副本数量等管理任务都是由controller完成的
  • Kafka分区leader的选举,也是有controller决定的

2. Controller的选举

  • 在Kafka集群启动时,每个broker都会常识去ZooKeeper上注册成为Controller(ZK临时节点)
  • 只会有一个broker竞争成功,其他的broker会注册该节点的监视器,一旦该临时节点状态发生变化,就可以进行相应的处理
  • Controller是高可用的,一旦某个broker崩溃,其他的broker会重新注册成为Controller
    kafka的leader和follower,Kafka,kafka

3. Controller选举分区leader

  • 所有分区的leader选举都是由controller决定的
  • controller会将leader的改变直接通过RPC的方式通知需为此做出响应的broker
  • controller读取到当前分区的ISR,只有一个replica存活时,就选择这个replica作为leader,否则任意选择一个replica作为leader
  • 如果该分区的所有replica都已经宕机,则新的leader为-1

4. 为什么不通过ZK的方式选举分区的leader?

  • Kafka集群如果业务很多的情况下,会存在很多的分区
  • 假设某个broker宕机,就会出现很多的分区都需要重新选举leader
  • 如果使用zookeeper选举leader,会给zk带来巨大的压力。因此,Kafka中leader的选举不能使用zk来实现

五、leader负载均衡

如果某个broker崩溃之后,就可能导致分区的leader分布不均匀,就是说一个broker上存在一个topic下不同分区的leader

1. Prefered Replica

  • Kafka中引入了一个叫做【prefered replica】概念,即:优先的replica
  • 在ISR列表中,第一个replica就是prefered replica

2. 重新分配分区leader

kafka的leader和follower,Kafka,kafka

kafka的leader和follower,Kafka,kafka
kafka的leader和follower,Kafka,kafka文章来源地址https://www.toymoban.com/news/detail-716571.html

到了这里,关于【Kafka原理】分区的leader和follower的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • kafka中topic的部分分区leader为none,怎样解决?

      (以Hadoop的topic为例) 进入Zookeeper客户端查看kafka存储的信息,/kafka/brokers/topics/hadoop/partitions/1/state get /kafka/brokers/topics/hadoop/partitions/1/state 查看到 {\\\"controller_epoch\\\":33,\\\"leader\\\":-1,\\\"version\\\":1,\\\"leader_epoch\\\":25,\\\"isr\\\":[3]}  leader为-1,固分区的leader为none 修改/kafka/brokers/topics/hadoop/partitions/

    2024年02月03日
    浏览(35)
  • Kafka3.0.0版本——Leader故障处理细节原理

    三台服务器 原始服务器名称 原始服务器ip 节点 centos7虚拟机1 192.168.136.27 broker0 centos7虚拟机2 192.168.136.28 broker1 centos7虚拟机3 192.168.136.29 broker2 2.1、服务器基本信息 首先,分别有3台服务器分别为broker0、broker1、broker2,其中一台为leader,2台follower服务器。每台服务器已经接收到

    2024年02月11日
    浏览(29)
  • Kafka3.0.0版本——Follower故障处理细节原理

    三台服务器 原始服务器名称 原始服务器ip 节点 centos7虚拟机1 192.168.136.27 broker0 centos7虚拟机2 192.168.136.28 broker1 centos7虚拟机3 192.168.136.29 broker2 2.1、服务器基本信息 首先,分别有3台服务器分别为broker0、broker1、broker2,其中一台为leader,2台follower服务器。每台服务器已经接收到

    2024年02月10日
    浏览(33)
  • 详解Kafka分区机制原理|Kafka 系列 二

    Kafka 系列第二篇,详解分区机制原理。为了不错过更新,请大家将本号“ 设为星标 ”。 点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达 上一篇文章介绍了 Kafka 的基本概念和术语,里面有个概念是 分区(Partition)。 kafka 将 一个Topic 中的消息分成多份,分

    2024年02月14日
    浏览(29)
  • Kafka 原理以及分区分配策略剖析

    一、简介 Apache Kafka 是一个分布式的流处理平台(分布式的基于发布/订阅模式的消息队列【Message Queue】)。 流处理平台有以下3个特性: 可以让你发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。 可以储存流式的记录,并且有较好的容错性。 可以在流式

    2023年04月08日
    浏览(26)
  • kafka leader -1

    问题

    2024年02月07日
    浏览(25)
  • Kafka学习--3、Kafka Broker、节点服役和退役、Kafka 副本、Leader 选举流程、故障处理

    1.1 Kafka Broker工作流程 1.1.1 Zookeeper储存的Kafka信息 (1)启动Zookeeper集群、再启动Kafka集群,然后启动Zookeeper客户端 (2)通过ls命令可以查看kafka相关信息。 1.1.2 Kafka Broker总体工作流程 1、模拟Kafka上下线,Zookeeper中数据变化 (1)查看/kafka/brokers/ids 路径上的节点。 (2)查看

    2024年02月10日
    浏览(33)
  • kafka 集群是如何选择 leader,你知道吗?

    kafka 集群是由多个 broker 节点组成,这里面包含了许多的知识点,以下的这些问题你都知道吗? 你知道 topic 的分区 leader 是怎么选举的吗? 你知道 zookeeper 中存储了 kafka 的什么信息吗?起到什么做呢? 你知道 kafka 消息文件是怎么存储的吗? 如果 kafka 中 leader 节点或者 follow

    2024年02月07日
    浏览(51)
  • 【项目实战】Kafka 的 Leader 选举和负载均衡

    👉 博主介绍 : 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO TOP红人 Java知识图谱点击链接: 体系化学习Java(Java面试专题) 💕💕 感兴趣的同学可以收藏关注下 , 不然下次找不到哟

    2024年02月16日
    浏览(30)
  • kafka集群是如何选择leader,你知道吗?

    kafka 集群是由多个 broker 节点组成,这里面包含了许多的知识点,以下的这些问题你都知道吗? 你知道 topic 的分区 leader 是怎么选举的吗? 你知道 zookeeper 中存储了 kafka 的什么信息吗?起到什么做呢? 你知道 kafka 消息文件是怎么存储的吗? 如果 kafka 中 leader 节点或者 follow

    2024年02月06日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包