CKafka Broker宕机故障

最近更新时间:2025-11-20 15:16:33

我的收藏

背景

Kafka集群由多个服务器组成,这些服务器中的每一个都被称为一个Broker。尽管Kafka旨在提供高可用性和容错能力,但在实际应用中,Broker宕机有时候也是不可避免的,以下是一些较为常见的场景:
硬件故障:Kafka高度依赖磁盘性能,不稳定的电源供应或电源故障也可能导致Broker突然宕机。
网络问题:网络连接问题或者网络硬件故障也可能导致Broker无法与集群中的其他节点通信,从而导致宕机。
内存泄漏:长时间运行的进程可能会因内存泄漏而耗尽可用内存,导致宕机。
文件描述符耗尽:Kafka大量使用文件操作,如果文件描述符被耗尽,也会导致服务不可用。
当发生以上的未知错误时可能会导致Broker节点发生宕机进而产生消息堆积和不可用的情况,智能顾问-混沌演练提供对这种情况的故障模拟动作,实现主动调度关停Broker时的宕机效果,验证极端情况下是否出现数据丢失,恢复后业务是否能正常运行,了解这些影响以采取适当的应对策略维护Kafka集群的稳定性。

演练准备

一台可供演练的 CKafka 专业版实例,要求有 Topic 并且具备一定流量。
从 Apache Kafka下载对应版本的客户端,解压后使用 bin 目录下的 shell 脚本作为生产者和消费者用于测试。
说明:
根据实例版本下载对应版本的客户端,如2.8.1版本的实例可使用以下命令安装:
wget https://archive.apache.org/dist/kafka/2.8.1/kafka_2.12-2.8.1.tgz

步骤一:创建演练

1. 登录 智能顾问控制台 > 架构治理,进入治理模式,点击混沌演练。(详细创建演练方式请参阅 使用智能顾问进行混沌演练

2. 点击新建演练,填写演练基本信息,完成后点击下一步

3. 在演练实例中,选择中间件- Ckafka,选择后点击搜索添加,添加实例资源。亦可通过架构图添加方式,直接点击架构图上的 Ckafka 资源,选择实例进行添加。

4. 完成添加实例后,点击添加动作,演练动作选择 Broker节点故障,然后点击下一步,配置动作参数。


5. 参数配置完成之后,在全局配置中选择执行方式护栏策略,及添加可观测指标。配置完成后,点击提交,即可完成演练任务创建。


步骤二:执行演练

1. 启动 bin 目录下 kafka-producer-perf-test.sh 脚本生产消息。

启动 kafka-consumer-perf-test.sh 脚本消费消息。

2. 进入演练详情,点击故障动作组中的执行,或下方开始演练,注入故障。

3. 观察故障影响,发现因缺失 Leader 导致生产者断连;

Broker 存活率下降,选举其他可用区 Broker 作为新的 Leader;

观察未同步副本数,发现数量骤增。

4. 实例在完成 HA 后业务恢复正常生产消费。

5. 执行恢复动作重启关停的 Broker,Broker 节点恢复运行,未同步副本数已完成同步。