美文网首页
Kafka之分区副本分配

Kafka之分区副本分配

作者: 五月笙 | 来源:发表于2021-04-05 22:53 被阅读0次

分区和角色

分区分配需要从三个角度考量:

1.生产者:关注的是每条消息发往哪个分区
2.消费者:关注的是每个消费者被指定消费哪个分区
3.服务端:关注一个Topic下的每个分区的若干副本如何保存在不同的broker节点

分配逻辑

没有开启机架感知(比如没有配置机架或者指定了disable-rack-aware),那么分配逻辑如下:

1. 最开始会将所有的可用broker初始化一个List集合
2. 然后随机计算首个分配的broker;(并不是每次都从0号broker开始,那样会不均匀且0号broker可能已经退出集群了);
3. 给分区取一个编号,按照顺序从分区编号为0的分区开始分配;
4. 分配的时候会计算一个步长shift,比如0号分区的第一个副本在broker为2,那么1号副本就在broker2+shift,这个计算细节就没有研究了,可以参照scala源码

开启机架感知,会将机架信息作为一个附加参考项,下面是对比前面的区别

1.在计算初始化broker集合的时候,是轮询的而不是顺序的;比如A机架有1、2和3,B机架有4、5和6,C机架有7、8和9,那么broker的集合是[1,4,7,2,5,8,3,6,9];
2.另外在分配的时候会做一些校验,比如A机架中的一个broker已经分了一个副本了,B和C机架中还有一个机架没有改分区副本,那么就一定不会把新的副本分配到A机架,而是B或者C机架

PS:总体来说就是进来均匀分布,有机架的时候就尽量把副本分配到不同的机架

相关文章

  • kafka修改分区和副本数

    kafka修改分区和副本数 查看现在副本分配情况 topic 分区扩容 修改备份数量 这个文件自己创建 格式按照下...

  • Kafka之分区副本分配

    分区和角色 分区分配需要从三个角度考量: 分配逻辑 没有开启机架感知(比如没有配置机架或者指定了disable-r...

  • 【kafka】kafka数据迁移、分区副本重分配

    一、 分区副本重分配 1 生成推荐配置脚本 关键参数--generate在进行分区副本重分配之前,最好是用下面方式...

  • Kafka的存储机制以及可靠性

    一、kafka的存储机制 kafka通过topic来分主题存放数据,主题内有分区,分区可以有多个副本,分区的内部还...

  • Kafka主从同步及leader&follower

    Kafka允许topic的分区拥有若干副本,这个数量是可以配置的,你可以为每个topci配置副本的数量。Kafka...

  • Kafka可靠性保证

    多副本机制 Kafka为分区引入了多副本(Replica) 机制, 通过增加副本数量可以提升容灾能力。副本之间是“...

  • kafka基本数据讲解

    官方文档定义:kafka是一个分布式、可分区、多副本的日志系统。 kafka术语: massage: kafka中...

  • kafka学习(1) 初识kafka

    Kafka介绍 Kafka是LinkedIn采用scala开发的一个多分区, 多副本并且基于ZooKeeper协调...

  • 大数据 - Kafka

    大数据 - Kafka 初识Kafka Kafka是一个分布式的,支持多分区、多副本的基于zookeeper的分布...

  • kafka分区机制和多副本机制

    多副本机制 Kafka 为分区引入了多副本(Replica)机制,通过增加副本数量可以提升容灾能力。备份的思想,就...

网友评论

      本文标题:Kafka之分区副本分配

      本文链接:https://www.haomeiwen.com/subject/xvujkltx.html