当前位置: 首页 > 知识库问答 >
问题:

如何将新的Kafka代理机器动态添加到集群中

冯阳云
2023-03-14

我们有Kafka合流集群,集群包括3个Kafka经纪人,

版本详情:

Kafka machines are installed on rhel version 7.2 
Kafka confluent version is 0.1x
Zookeeper version: 3.4.10
schema-registry version: 4.0.0

每台Kafka broker机器包括以下服务

Kafka broker
Zookeeper server
Schema registry

现在,我们想要向当前的Kafka集群添加一个新的 3 个 Kafka 代理计算机(其他 Kafka 计算机是 – 具有相同 Kafka 版本的 kafka04/05/060.1X , )

所以集群最终应该与:

6台Kafka经纪人机器-kafka01、kafka02、kafka03、Kafka 04、kakfa05、kafka05

3动物园管理员服务器-kafka01、kafka02、kafka03

3模式注册表服务-kafka01、kafka02、kafka 03

为了将新的3 Kafka代理连接到现有的Kafka集群,我们需要更改所有Kafka机器(旧的Kafga机器和新的Kafka机器)上的配置

我们不确定Kafka代理中应该更改的配置文件到底是什么,但根据我的理解,我们应该按以下方式更改Kafka和动物园管理员设置

我很乐意收到有关以下程序的备注/说明。

>

  • 在新的Kafka Brokers-kafka04/05/06上编辑server.properties文件,并更改broker.id参数如下

    Kafka 04-< code > broker . id = 4 On Kafka 05-< code > broker . id = 5 On Kafka 06-< code > broker . id = 6

    编辑所有 Kafka 计算机上的 server.属性 - kafka01/02/03/04/05/06 并将以下参数更改为群集中的总节点数

     offsets.topic.replication.factor=6
     transaction.state.log.replication.factor=6
    

    在新的Kafka机器上,Kafka 04/05/06编辑服务器。属性并更新参数--zookeeper。连接与位于kafka01、kafka02、

    例子

     zookeeper.connect=10.10.10.1:2181,10.10.10.2:2181,10.10.10.3:2181
    

    在Kafka机器上-kafka 04/05/06,编辑文件-zookeeper.properties作为
    跟随

    server.1=10.10.10.1:2888:3888
    server.2=10.10.10.2:2888:3888
    server.3=10.10.10.3:2888:3888
    

    编辑文件 - Kafka 04/05/06 上的 myid 文件,并将参数更改为 broker.id 如下所示

    kafka04集合上:

     broker.id=4
    

    Kafka05集:

     broker.id=5
    

    Kafka06集:

     broker.id=6
    

    完成上述设置后,重新启动kafka01/02/03/04/05/06上的所有Kafka代理服务,并重新启动Kafka 01/02/03上的动物园管理员服务器

    并验证所有Kafka服务和动物园管理员服务是否成功启动

    参考信息-https://www2.microstrategy.com/producthelp/current/PlatformAnalytics/en-us/Content/Add_kafka_node_to_kafka_cluster.htm


  • 共有1个答案

    鞠宏恺
    2023-03-14

    添加代理时,您无需更改现有代理的配置,也无需重新启动它们。这同样适用于ZooKeeper,如果您没有添加新的ZooKeeper服务器。

    在新的代理上,只需设置一个不同的代理即可。id值。

    我不建议增加主题的复制因子(包括内部)超过3。

    一旦您的新代理启动,您可能希望重新平衡现有数据。有很多工具可以做到这一点,包括kafka重新分配分区。sh工具。Kafka文件有一节详细介绍了该过程:https://kafka.apache.org/documentation/#basic_ops_cluster_expansion

     类似资料:
    • 问题内容: 我想在我的Gradle版本(版本1.0)中添加集成测试。它们应与我的常规测试分开运行,因为它们需要将webapp部署到本地主机(它们测试该webapp)。这些测试应该能够使用在我的主要源代码集中定义的类。我如何做到这一点? 问题答案: 这花了我一段时间才能弄清楚,在线资源也不是很好。所以我想记录我的解决方案。 这是一个简单的gradle构建脚本,除了主要和测试源集之外,还具有intTe

    • 我们有kafka集群,包含3个kafka代理节点和3个zookeepers服务器 Kafka版本- 10.1 ( hortonworks) 根据我的理解,因为所有的元数据都位于zookeeper服务器上,kafka代理正在使用这些数据(kafka通过端口2181与zookeeper服务器对话) 我只是想知道是否每台kafka机器都与集群中的其他kafka交谈,或者kafka可能只在动物园管理员服务

    • 我们拥有由3台代理机器和3台动物园管理员机器组成的集群 所有服务器都安装在redhat 7.2版本上 但是当我们运行以下cli时(要知道所有经纪人ID都存在于动物园管理员中,我们会得到: 相反,要得到它: 我们通过搜索服务器中的错误来检查第一个经纪人( 我们在日志中没有看到任何相关的错误! 端口 2181 从Kafka经纪人到动物园管理员机器正在工作 我们还重新启动了,但这无助于在动物园管理员cl

    • 有什么工作可以做吗?可能是一种远程通知每个节点将新节点添加到集群的方法吗?

    • 群主/管理员在企业群中,点击机器人图标打开机器人面板,进入添加机器人列表。1个群最多只能添加10个机器人。 详细请参阅:在客户端使用机器人 机器人添加入口:

    • 问题内容: 我对此有疑问。我有一个JPanel,通常我会像这样创建一个JLabel: 但是我希望每次单击一个按钮时,在该面板中创建一个新的JLabel,它的大小相同,但高度不同。我试过了: 但是这样一来,我就无法设定界限。我从JTextField获得的stringName。 问题答案: 首先,使用layout。正确完成布局后,组件将按照需要放置。其次,在向布局动态添加组件时,您需要告诉布局更新。这