热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用kafkat在线扩缩容kafkareplicas

本文档应用环境为kafka-0.8.2.0,其余版本请先行测试场景线上很多kafka的topic的副本数为1,这样的设置丧失了kafka

本文档应用环境为 kafka-0.8.2.0, 其余版本请先行测试

场景

线上很多 kafka 的 topic 的副本数为1,这样的设置丧失了 kafka 高可用的特性,所以我们需要把 topic 的副本数至少设置为2(当前3台 kafka)

 

 我们使用 kafkat 这个工具,这个工具是 ruby 写的,所以我们先安装 ruby 环境

参考 https://ruby-china.org/wiki/rvm-guide

这时候你应该已经由了 gem 命令

继续参考https://github.com/airbnb/kafkat 把 kafkat 装上, 并配置好你的 kafka 环境参数到 ~/.kafkatcfg

实操

我们修改 topic 的 replicas 为2

[root @ 001  kafka]# kafkat partitions IM_APP_BINSPECT_MSG_TOPIC
Topic       Partition   Leader      Replicas                        ISRs
IM_APP_BINSPECT_MSG_TOPIC    0        2        [ 2 ]                         [ 2 ]
IM_APP_BINSPECT_MSG_TOPIC    1        3        [ 3 ]                         [ 3 ]
IM_APP_BINSPECT_MSG_TOPIC    2        1        [ 1 ]                         [ 1 ]
IM_APP_BINSPECT_MSG_TOPIC    3        2        [ 2 ]                         [ 2 ]
IM_APP_BINSPECT_MSG_TOPIC    4        3        [ 3 ]                         [ 3 ]
IM_APP_BINSPECT_MSG_TOPIC    5        1        [ 1 ]                         [ 1 ]
IM_APP_BINSPECT_MSG_TOPIC    6        2        [ 2 ]                         [ 2 ]
IM_APP_BINSPECT_MSG_TOPIC    7        3        [ 3 ]                         [ 3 ]
IM_APP_BINSPECT_MSG_TOPIC    8        1        [ 1 ]                         [ 1 ]
IM_APP_BINSPECT_MSG_TOPIC    9        2        [ 2 ]                         [ 2 ]
IM_APP_BINSPECT_MSG_TOPIC    10       3        [ 3 ]                         [ 3 ]
IM_APP_BINSPECT_MSG_TOPIC    11       1        [ 1 ]                         [ 1 ]
IM_APP_BINSPECT_MSG_TOPIC    12       2        [ 2 ]                         [ 2 ]
IM_APP_BINSPECT_MSG_TOPIC    13       3        [ 3 ]                         [ 3 ]
IM_APP_BINSPECT_MSG_TOPIC    14       1        [ 1 ]                         [ 1 ]
IM_APP_BINSPECT_MSG_TOPIC    15       2        [ 2 ]                         [ 2 ]
IM_APP_BINSPECT_MSG_TOPIC    16       3        [ 3 ]                         [ 3 ]
IM_APP_BINSPECT_MSG_TOPIC    17       1        [ 1 ]                         [ 1 ]
IM_APP_BINSPECT_MSG_TOPIC    18       2        [ 2 ]                         [ 2 ]
IM_APP_BINSPECT_MSG_TOPIC    19       3        [ 3 ]                         [ 3 ]
[root @ 001  kafka]# kafkat set-replication-factor IM_APP_BINSPECT_MSG_TOPIC --newrf  2  --brokers  1 , 2 , 3
This operation executes the following assignments:
Topic       Partition   Replicas
IM_APP_BINSPECT_MSG_TOPIC    0        [ 2 1 ]
IM_APP_BINSPECT_MSG_TOPIC    1        [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    2        [ 1 3 ]
IM_APP_BINSPECT_MSG_TOPIC    3        [ 2 1 ]
IM_APP_BINSPECT_MSG_TOPIC    4        [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    5        [ 1 3 ]
IM_APP_BINSPECT_MSG_TOPIC    6        [ 2 1 ]
IM_APP_BINSPECT_MSG_TOPIC    7        [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    8        [ 1 3 ]
IM_APP_BINSPECT_MSG_TOPIC    9        [ 2 1 ]
IM_APP_BINSPECT_MSG_TOPIC    10       [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    11       [ 1 3 ]
IM_APP_BINSPECT_MSG_TOPIC    12       [ 2 1 ]
IM_APP_BINSPECT_MSG_TOPIC    13       [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    14       [ 1 3 ]
IM_APP_BINSPECT_MSG_TOPIC    15       [ 2 1 ]
IM_APP_BINSPECT_MSG_TOPIC    16       [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    17       [ 1 3 ]
IM_APP_BINSPECT_MSG_TOPIC    18       [ 2 1 ]
IM_APP_BINSPECT_MSG_TOPIC    19       [ 3 2 ]
Proceed (y/n)?
y
Beginning.
Started.
[root @ 001  kafka]# kafkat partitions IM_APP_BINSPECT_MSG_TOPIC
Topic       Partition   Leader      Replicas                        ISRs
IM_APP_BINSPECT_MSG_TOPIC    0        2        [ 2 1 ]                          [ 2 ]
IM_APP_BINSPECT_MSG_TOPIC    1        3        [ 3 2 ]                          [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    2        1        [ 1 3 ]                          [ 1 ]
IM_APP_BINSPECT_MSG_TOPIC    3        2        [ 2 1 ]                          [ 2 ]
IM_APP_BINSPECT_MSG_TOPIC    4        3        [ 3 2 ]                          [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    5        1        [ 1 3 ]                          [ 1 ]
IM_APP_BINSPECT_MSG_TOPIC    6        2        [ 2 1 ]                          [ 2 ]
IM_APP_BINSPECT_MSG_TOPIC    7        3        [ 3 2 ]                          [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    8        1        [ 1 3 ]                          [ 1 ]
IM_APP_BINSPECT_MSG_TOPIC    9        2        [ 2 1 ]                          [ 2 ]
IM_APP_BINSPECT_MSG_TOPIC    10       3        [ 3 2 ]                          [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    11       1        [ 1 3 ]                          [ 1 ]
IM_APP_BINSPECT_MSG_TOPIC    12       2        [ 2 1 ]                          [ 2 ]
IM_APP_BINSPECT_MSG_TOPIC    13       3        [ 3 2 ]                          [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    14       1        [ 1 3 ]                          [ 1 ]
IM_APP_BINSPECT_MSG_TOPIC    15       2        [ 2 1 ]                          [ 2 ]
IM_APP_BINSPECT_MSG_TOPIC    16       3        [ 3 2 ]                          [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    17       1        [ 1 3 ]                          [ 1 ]
IM_APP_BINSPECT_MSG_TOPIC    18       2        [ 2 1 ]                          [ 2 ]
IM_APP_BINSPECT_MSG_TOPIC    19       3        [ 3 2 ]                          [ 3 ]

解释

上面一共执行了3个命令

  1. kafkat partitions IM_APP_BINSPECT_MSG_TOPIC   查看 topic 的分区情况
  2. kafkat set-replication-factor IM_APP_BINSPECT_MSG_TOPIC --newrf 2 --brokers 1,2,3   重新设置副本数为2  --newrf 2  , 你有几个 broker就在--brokers 后面指定
  3. kafkat partitions IM_APP_BINSPECT_MSG_TOPIC    检查是否生效


根据 topic 数据量最后完成的时间也不同(大概几分钟)

这是最后的完成情况

[root @ 001  kafka]# kafkat partitions IM_APP_BINSPECT_MSG_TOPIC
Topic       Partition   Leader      Replicas                        ISRs
IM_APP_BINSPECT_MSG_TOPIC    0        2        [ 2 1 ]                          [ 2 1 ]
IM_APP_BINSPECT_MSG_TOPIC    1        3        [ 3 2 ]                          [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    2        1        [ 1 3 ]                          [ 1 3 ]
IM_APP_BINSPECT_MSG_TOPIC    3        2        [ 2 1 ]                          [ 2 1 ]
IM_APP_BINSPECT_MSG_TOPIC    4        3        [ 3 2 ]                          [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    5        1        [ 1 3 ]                          [ 1 3 ]
IM_APP_BINSPECT_MSG_TOPIC    6        2        [ 2 1 ]                          [ 2 1 ]
IM_APP_BINSPECT_MSG_TOPIC    7        3        [ 3 2 ]                          [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    8        1        [ 1 3 ]                          [ 1 3 ]
IM_APP_BINSPECT_MSG_TOPIC    9        2        [ 2 1 ]                          [ 2 1 ]
IM_APP_BINSPECT_MSG_TOPIC    10       3        [ 3 2 ]                          [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    11       1        [ 1 3 ]                          [ 1 3 ]
IM_APP_BINSPECT_MSG_TOPIC    12       2        [ 2 1 ]                          [ 2 1 ]
IM_APP_BINSPECT_MSG_TOPIC    13       3        [ 3 2 ]                          [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    14       1        [ 1 3 ]                          [ 1 3 ]
IM_APP_BINSPECT_MSG_TOPIC    15       2        [ 2 1 ]                          [ 2 1 ]
IM_APP_BINSPECT_MSG_TOPIC    16       3        [ 3 2 ]                          [ 3 2 ]
IM_APP_BINSPECT_MSG_TOPIC    17       1        [ 1 3 ]                          [ 1 3 ]
IM_APP_BINSPECT_MSG_TOPIC    18       2        [ 2 1 ]                          [ 2 1 ]
IM_APP_BINSPECT_MSG_TOPIC    19       3        [ 3 2 ]                          [ 3 2 ]
 


推荐阅读
  • 在IDEA中运行CAS服务器的配置方法
    本文介绍了在IDEA中运行CAS服务器的配置方法,包括下载CAS模板Overlay Template、解压并添加项目、配置tomcat、运行CAS服务器等步骤。通过本文的指导,读者可以轻松在IDEA中进行CAS服务器的运行和配置。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • AstridDAO 专访:波卡稳定币黑马 BAI
    加入Pol ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文介绍了一种求解最小权匹配问题的方法,使用了拆点和KM算法。通过将机器拆成多个点,表示加工的顺序,然后使用KM算法求解最小权匹配,得到最优解。文章给出了具体的代码实现,并提供了一篇题解作为参考。 ... [详细]
  • 1Lock与ReadWriteLock1.1LockpublicinterfaceLock{voidlock();voidlockInterruptibl ... [详细]
  • 本文介绍了如何使用MATLAB调用摄像头进行人脸检测和识别。首先需要安装扩展工具,并下载安装OS Generic Video Interface。然后使用MATLAB的机器视觉工具箱中的VJ算法进行人脸检测,可以直接调用CascadeObjectDetector函数进行检测。同时还介绍了如何调用摄像头进行人脸识别,并对每一帧图像进行识别。最后,给出了一些相关的参考资料和实例。 ... [详细]
author-avatar
空白画叶子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有