1.概述

本篇文章是:https://articles.zsxq.com/id_7srom6n6b947.html 文章的读后感,文章中写的不详细,想做一个详细的案例。

2.原文


2021年10月27日20:10
首先,写这篇文章的目的是为了帮助在kafka分区迁移leader可能遇到和我一-样的问题的同学,同时也为了记录自己迁移遇到的问题。
我们所用的生产环境的kafka版本为0.11.1, -开始只有7台机器作为集群,后来又加入了新的7台机器配置和原集群一样, 新加集群是因为原来的7台机器的cpu到达了80%,这样总集群达到了14
台。由于新加机器kafka不会自动平衡,需要自己进行分区leader的迁移。我们一-开始选取了3种方案:
一、降低数据保留时间,精准迁移
大致思路为:
1.找出需要操作的Topic
2.调整这 些Topic的数据保留时间
3.对这些Topic进行迁移
4.等待迁移完成, 完成L .eader切换,均分集群压力。
二、往指定节点上添加分区,均分压力
大致思路为:
1.找出需要操作的Topic
2.评估这些Topic需要导多少流量到新节点。这一步比较好做,- -般比如要把30%,50%的流量导入到新节点,大概评估一下即可。
3.扩容目标Topic的分区数,将这些新增的分区指定扩容到新的节点上。
三:切换Leader,降低单机负载
大致思路为:
1.找出负载高的节点上的所有L eader
2.将节点上分区的L eader切换到负载较低的Follower节点上
最后,我们选用了第三种方法,原因是第一二种 与业务沟通下来不可进行修改。接下来按照官方推荐的方法为:
1、执行kafka-reassign-partitions.sh – generate生成迁移的json文件,这步我们没有进行操作,是因为有现成的api能自动生成执行的json,就是因为这一步没有做, 导致了我们生成的json与推荐
的不一-致, 推荐的为:你指定- -broker-list, 那么他会把你topic分区都迁移到你指定的broker上,例如原来topic为3副本,partition-0的replica为{0,1,2}, 指定broker-list为“4,5,6”, 那么就会生成
-个{4,5,6}的replica,而我们的api生 成的副本为{4,1.2},就是随机选取一个新的brolerid放入第一 个位置。保留原来的两个副本。
这么做的原因是因为:害怕把分区都移到新的上面,迁移的这段时间可能导致不能进行读写。然后就是执行kafka- ressign- -paritions.sh - throttle - -execute, 这-步又遇到了问题,因为内部
之前自己封了一下kafka admin的接口,可以通过页面直接进行执行kafka-reassign-partitions.sh – throttle – -execute的命令,可能之前的人理解的不到位,只是执行了kafka-reassign-
partitions.sh – throttle – execute 没有执行kafka-reassign-partitions.sh --verify 导致的问题就是当你执行命令: kafka-topics.sh – describe – zookeeper --topic xxx 你会发现除了自己修
改的配置外,还会有两个配置在其中: leader.elication.throttled.replicas 与follower.replication.throtted.replicas,

正常情况下这两个配置默认是空的,执行的时候不会出现此配置,但是我们的确确实实出现了,这两项是leader与follower之间加了限速,那么就意味着不正常,可是跑了这么长时间了为啥没有出
现流量的异常,我就很匪夷所思。通过查找zk所知:在分区leader与follower的限速上。- 共有4条配置:
leader.replication.throttled.rate, follower.replication.throttled.rate, leader.replication.throttled.replicas
follower.replication.throttled.replicas,
其中前两条: leader.replicationthrottled.rate, follower.replication.thottled.rate是 加在broker.上的,通过在zk中get /confgs/brokers/{brokerid}所获得,后两条: .
leader.replicaton.throttled.replicas, follower.eplication.tottled.replicas 是在topic上的配置,通过get /confg/topics/{topicname}获得, 上面说的流量没有异常的原因是:我在get
/configs/brokers/{brokerid}后
leaderalicaiotted.rate, fllower replication.troted.rate是空的,那么就没有此配置,也就是说broker侧的没有加上限速的配置,还是以默认的最大速率进行同步, topic侧显示 了限速的
副本,对应的配置: leader.eplication.throttled.replicas, follower.replicatin.throttled.replicas
那么,通过执行命令: kafka-confgs.sh - zookeeper xxx – entity-type topics - -entity-name xxx --alter – delete- confg fllower.elicatio.thrototld.replicas,
leader.replication.throttled.replicas把topic配置删除,实现配置的还原。
最后,如果有同学需要进行副本的迁移,那么- - -定要运行-- -verfy命令 当出现: Throttle was removed.才证明完成了限速也解除了, leader的迁移时, 原来的leader是能进行读写的,所以不需要像
我一样还放两个副本在旧机器上。

【kafka】kafka Kafka分区leader迁移相关推荐

  1. 高效实用Kafka-Kafka集群维护(分区平衡机制、kafka分区日志迁移)

    导语   昨天的分享中,从微观的层面上了解了关于Kafka消息处理机制,但是当面对一个kafka集群的时候从宏观的角度上来说怎么保证kafka集群的高可用性呢?下面就来看看 文章目录 Kafka集群基 ...

  2. Kafka Topic分区手动迁移:kafka-reassign-partitions

    应用场景: 有时候需要把topic的分区或副本到指定到某台服务器上,可用Kafka提供的kafka-reassign-partitions进行手动迁移. 1.查看当前主题的详情 kafka-topic ...

  3. 【源码分析】Kafka分区重分配/迁移(kafka-reassign-partitions.sh)

    1.查看kafka-reassign-partitions.sh脚本 cd kafka_home/bin cat kafka-reassign-partitions.sh #!/bin/bash # ...

  4. 【kafka】kafka topic某些分区 副本落后leader太多

    文章目录 1.概述 本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 1.概述 社区有人问 kafka topic某些分区 副本落后leader太多有大佬 ...

  5. Kafka系列之:深入理解Kafka 主题、分区、副本、LEO、ISR、HW、Kafka的主写主读和分区leader选举

    Kafka系列之:深入理解Kafka 主题.分区.副本.LEO.ISR.HW.Kafka的主写主读和分区leader选举 一.Kafka重要知识点提炼 二.详细介绍Kafka 主题.分区.副本.LEO ...

  6. 【kafka实战】分区重分配可能出现的问题和排查问题思路(生产环境实战,附视频)

    超强!!! Kafka高质量专栏学习大全,点我获取!!! 文章目录 前提 所有异常情况 1. TargetBroker若不在线,迁移脚本执行会失败 情景演示 2. TargetBroker在开始迁移过 ...

  7. Kafka 原理以及分区分配策略剖析

    欢迎关注方志朋的博客,回复"666"获面试宝典 ‍ ‍一.简介‍ ‍ Apache Kafka 是一个分布式的流处理平台(分布式的基于发布/订阅模式的消息队列[Message Qu ...

  8. Kafka参数图鉴——unclean.leader.election.enable

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  9. kafka系列之kafka生产者与分区(3)

    概要 当我们发送消息之前,先问几个问题:每条消息都是很关键且不能容忍丢失么?偶尔重复消息可以么?我们关注的是消息延迟还是写入消息的吞吐量? 举个例子,有一个信用卡交易处理系统,当交易发生时会发送一条消 ...

最新文章

  1. 布隆过滤器 redis_使用基于 Redis 的 Java 布隆过滤器
  2. 一个点到多边形顶点距离相同_走进高维空间——所有点之间的距离都相等!奇妙、疯狂、不可思议...
  3. php输出json html,html怎样格式化输出JSON数据
  4. 解决:Reading table information for completion of table and column names
  5. SQL Server 2012中的ColumnStore Index尝试
  6. UA MATH524 复变函数5 代数运算、可微性与积分基础例题
  7. Python数据可视化实战应用万字长文从入门到高端(建议收藏)
  8. C和C++之用extern “C“实现它们之间的互调
  9. 微信小程序中带参数返回上一页的方法总结(三种)
  10. Cinemachine教程 | Unity中如何快速制作相机切换动画?
  11. 1. ansible-playbook 变量定义与引用
  12. Mac python3.5 + Selenium 开发环境配置
  13. phython在file同时写入两个_Python实现读取excel写入mysql的小工具详解
  14. 决策树C4.5算法对ID3算法的改进
  15. hive中sql使用英文分号
  16. 16进制是否能整除 求余的运算
  17. python实现函数的最佳平方逼近
  18. 面试官灵魂三问:什么是SOA?什么是微服务?SOA和微服务有什么区别?
  19. 在线考试系统总体设计
  20. 矩阵的entry 和element?

热门文章

  1. 谷歌微软等公司承诺大力投资于网络安全建设
  2. 预装鸿蒙系统!华为MatePad Pro 2或暂定6月2日发布
  3. 降价200!华为部分手机已取消充电器和数据线,网友表示可以接受
  4. 居然之家完成35亿定增 小米、阿里等认购
  5. 最狠的钉子户手机!最后一款已战斗5年,还能继续...
  6. 抖音联合九大博物馆推出“云游”活动 网友可在家看展
  7. 雷军的手机屏保亮了,网友哭笑不得:我还以为是董明珠呢!
  8. 小米投资偏爱智能与芯片 雷军:有3家科创板上市
  9. OPPO K3将登陆印度市场 高性价比能否占据一席之地
  10. 2299元 OPPO K3 8GB+256GB版本线上线下同步开售