Kafka集群扩容「建议收藏」

Kafka集群扩容「建议收藏」Kafka集群的服务发现是有zk实现的,因此想kafka集群添加新的broker就非常容易。我们只需要为新的broker设置一个唯一的broker.id,然后启动新增的kafka就行。Kafka集群会自动发现新增的broker并同步原数据,包括当前集群有哪些topics以及topics的分区信息等。但是我们需要的注意的一点,新增的broker不能分担之前已经创建的topic的负载,必须手动执行…

大家好,又见面了,我是你们的朋友全栈君。

Kafka集群的服务发现是有zk实现的,因此想kafka集群添加新的broker就非常容易。我们只需要为新的broker设置一个唯一的broker.id, 然后启动新增的kafka就行。Kafka集群会自动发现新增的broker并同步原数据,包括当前集群有哪些topics以及topics的分区信息等。

但是我们需要的注意的一点,新增的broker不能分担之前已经创建的topic的负载,必须手动执行重新分区才能从为新增broker添加之前的已经存在的topics服务。当然如果不执行重新分组,之后新添加的topics会自动将负载分担到新broker上。

Kafka提供的重分区工具是kakfa-reassign-partitions.sh(bat),默认在<kafka_install_dir>\bin, 例如,
在这里插入图片描述

分区重新分配工具可以以3种互斥模式运行:

--generate:在此模式下,给定主题列表和代理列表,该工具会生成候选重新​​分配,以将指定主题的所有分区移动到新代理。此选项仅提供了一种方便的方法,可在给定主题和目标代理列表的情况下生成分区重新分配计划。
--execute:在此模式下,该工具根据用户提供的重新分配计划启动分区的重新分配。(使用--reassignment-json-file选项)。这可以是由管理员手工制作的自定义重新分配计划,也可以使用--generate选项提供
--verify:在此模式下,该工具将验证最后一次--execute期间列出的所有分区的重新分配状态。状态可以是成功完成,失败或正在进行中

操作

我先只有一个broker0, 然后创建了yqtopic1和yqtopic2两个topic, 这两个topic都是2个分区,一个副本(一个broker上副本机制效果不大,只是为了演示)
1, 第一步生成重分区文件
创建一个要重分区的topic文件 yqToMoveTopics.json

{ 
   "topics": [{ 
   "topic": "yqtoipc1"},

            { 
   "topic": "yqtopic2"}],

"version":1
}
./kafka-reassign-partitions.sh --zookeeper localhost:2181 --topics-to-move-json-file yqToMoveTopics.json --broker-list "0,1" --generate

2, 执行重分区

./kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file /opt/reassign-partitions.json --execute

3, 验证重分区成功

./kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file /opt/reassign-partitions.json  --verify

先创建对象的topic

在这里插入图片描述

启动broker2后,重新分配分区
在这里插入图片描述

具体可以看截图消息。 因为我的topic数据很少,所以可以快速完全重新分区,但是实际生产系统,我们一定要选择业务空闲期执行,而且数据量大的话会执行很长时间。

备注:kafka还提供重分区时限制带宽以保证生产系统平稳。

官方文档:http://kafka.apache.org/10/documentation.html#rep-throttle
kafka-reassign-partitions.sh –zookeeper myhost:2181–execute –reassignment-json-file bigger-cluster.json —throttle 50000000

这样当执行重分区时,你会发现he throttle limit was set to 50000000 B/s, 也就是速率被限制在每秒50000000字节。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145876.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 矩阵求逆的_matlab计算矩阵的逆矩阵

    矩阵求逆的_matlab计算矩阵的逆矩阵首先输入矩阵,例如:octave:1&gt;a=[3,4;2,16]a=  3  4  2 16然后,利用pinv函数求逆octave:2&gt;pinv(a)ans=  0.400000 -0.100000 -0.050000 0.075000octave:3&gt;pinv(a)*aans=  1.00000 -0.00000  0.00000 …

    2022年8月21日
    6
  • UVa – The 3n + 1 problem 解读

    UVa – The 3n + 1 problem 解读

    2022年1月6日
    34
  • 树莓派容易坏吗_树莓派的使用

    树莓派容易坏吗_树莓派的使用清华下载地址下载地址下载地址xshell下载地址③树莓派插入TF卡后,等连接上手机就可查看IP地址2.远程登录①打开后选择新建②软件更新源③系统更新源④开始更新4.图形化显示界面为方便大家更直观的感受,可以下载一个图形化的显示桌面,这里推荐VNC(windows也自带了该功能,因为太卡了故不推荐,想用的可以试试:远程桌面连接)⭐有条件的可以直接连上显示屏使用①VNC的网盘连接,大家直接下载就行②打开树莓派的VNCServer(默认关闭)A.在

    2022年10月9日
    0
  • 智能避障小车_单片机智能小车程序

    智能避障小车_单片机智能小车程序      接下来我对所用的模块以及小车的硬件部分做一个讲解        小车的总体效果图如下:      首先是模块简介:            1、首先就是L298N,这是一个经典的电机驱动,相信基本所有玩过单片机,玩过电机的人都使用过,它可以最高容忍15v电压输入,逻辑电平2.4-5.5v,所以使用单片机的3.3v完全可以驱动,它并没有PWM接口来控制电机的速度,只能使逻辑电平输出…

    2022年10月17日
    0
  • 设计模式六大原则——迪米特法则(LoD)[通俗易懂]

    设计模式六大原则——迪米特法则(LoD)

    2022年1月25日
    51
  • 手把手教您组装一台家用NAS J3455黑群晖6.1.7搭建全过程[通俗易懂]

    手把手教您组装一台家用NAS J3455黑群晖6.1.7搭建全过程[通俗易懂]不到千元!手把手教您组装一台家用NASJ3455黑群晖6.1.7搭建全过程其实,市面上那么多NAS,特别是黑群晖,到底哪一台,哪一种配置最适合家用呢?经过俺几个月的观察和尝试,最终锁定了目标:J

    2022年8月3日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号