kafka集群节点临时下线操作流程及步骤

kafka集群节点临时下线操作流程:

首先,我们需要确保在将 Kafka 集群中的节点临时下线之前,集群处于健康状态。然后,我们可以按照以下步骤执行临时下线操作:

1.停止 Kafka 服务:在要下线的节点上停止 Kafka 服务,确保该节点不再参与集群中的任何活动。

2.从 ZooKeeper 中移除节点:使用 ZooKeeper 的命令行工具,手动将要下线的节点从 ZooKeeper 中移除。这将触发集群重新平衡,以确保其他节点接管该节点的分区。

3.监控集群健康状态:在节点下线后,监控集群的健康状态,确保其他节点成功接管了下线节点的分区,并且集群仍然能够正常工作。

4.恢复节点:当需要将节点重新加入集群时,启动 Kafka 服务,并确保节点的配置与其他节点保持一致。集群将自动检测到节点的重新加入,并进行必要的重新平衡操作。

注意,临时下线节点可能会导致集群的负载增加,因此在进行此操作时,需要谨慎考虑集群的整体健康状况以及业务需求。

kafka集群节点临时下线操作步骤:

1. 确保具备适当的权限和访问 Kafka 集群的方式。进入要下线的 Kafka 节点所在的服务器。此处提供的命令仅适用于 Apache Kafka 的默认安装和文件结构。如果你的安装方式或目录结构不同,请相应地修改命令。

2. 进入要下线的 Kafka 节点所在的服务器。

./zkServer.sh status
echo stat | nc <ZooKeeper IP> 2181
echo mntr | nc <ZooKeeper IP> 2181
echo isro | nc <ZooKeeper IP> 2181

systemctl status kafka.service

3. 停止 Kafka 服务器进程:

bin/kafka-server-stop.sh
或者
systemctl stop kafka.service

4. 确保 Kafka 服务器进程已经成功停止:

ps aux | grep kafka

在操作kafka节点下线过程中,同时登陆zookeeper集群,实时观察下线节点是否已从 zookeeper 节点中移除或重新注册

1)登陆zookeeper

./zkCli.sh -server 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181
# 查看kafka节点
[zk: 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181(CONNECTED) 3] ls /brokers/ids
[1, 2, 3]

2)检查节点状态:使用以下命令检查要下线的节点是否已从 ZooKeeper 中移除:

get /brokers/ids/<node_id>

如果返回结果为空,表示该节点已从 ZooKeeper 中移除。

[zk: 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181(CONNECTED) 4] get /brokers/ids/1
{"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://172.16.157.51:9092"],"jmx_port":9099,"host":"172.16.157.51","timestamp":"1704536493719","port":9092,"version":4}

[zk: 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181(CONNECTED) 0] ls /brokers/ids
[1, 3]
[zk: 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181(CONNECTED) 1] get /brokers/ids/2
Node does not exist: /brokers/ids/2

3)移除节点:如果节点仍然存在,可以使用以下命令将节点从 ZooKeeper 中移除:

rmr /brokers/ids/<node_id>

这将删除指定节点的所有相关信息。最好是直接将要下线的kafka节点服务停掉,直接删除要小心误操作。

4)验证节点移除:再次使用 get 命令检查节点状态,确保节点已成功从 ZooKeeper 中移除。

5. 在 Kafka 集群的其他节点上,运行命令 describe,检查集群的状态,确保被下线的节点已被正确标记为“下线”状态:

bin/kafka-topics.sh --describe --zookeeper <zookeeper_host>:<zookeeper_port>

替换 <zookeeper_host>  <zookeeper_port> 为你的 ZooKeeper 节点的主机和端口。

kafka-topics.sh --describe --zookeeper 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181

6. 在下线节点完成维护或修复后,可以按需重启 Kafka 服务器来将其重新加入集群。使用以下命令启动 Kafka 服务器:

bin/kafka-server-start.sh config/server.propertie 或者 systemctl start kafka.service

[zk: 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181(CONNECTED) 6] ls /brokers/ids
[1, 2, 3]

[zk: 172.16.157.51:2181,172.16.157.58:2181,172.16.157.70:2181(CONNECTED) 7] get /brokers/ids/2
{"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://172.16.157.58:9092"],"jmx_port":9099,"host":"172.16.157.58","timestamp":"1704695617038","port":9092,"version":4}

确保 Kafka 服务器配置文件的路径和名称正确。

7.使用 kafka-consumer-groups.sh 命令来查看消费者组的详细信息:

kafka-consumer-groups.sh --bootstrap-server 172.16.157.51:9092,172.16.157.58:9092,172.16.157.70:9092 --describe --group test

TOPIC     PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID                                  HOST           CLIENT-ID
test      1          20338977140     20340687475     1710335         test-1-7cac8552-2423-40ba-8b28-b2324e693f16  /172.16.157.6  test-1
test      0          21425799531     21427549842     1750311         test-0-3a8d66fd-90ac-47ac-a9b4-8410d04a2712  /172.16.157.6  test-0
test      2          20340552082     20342297849     1745767         test-10-0f56f4c4-b46a-4cc2-a34a-dc858a97f627 /172.16.157.6  test-10


anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/5939.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注