背景介绍
分布式消息服务 Kafka 集群中,分区 Leader 节点宕机、网络分区或资源过载等因素均可能造成分区 Leader 不可用,进而引发对应分区服务中断、客户端请求失败、Leader 重选举导致延迟升高及副本同步紊乱等问题,本演练可帮助验证集群高可用选举机制的有效性、监控告警的及时性,以及业务系统应对此类故障的容错能力与恢复效率。
基本原理
指定一个或多个分区Leader,通过调用Kafka模拟Leader故障OpenAPI,触发Leader重新选举。
故障注入
1、纳管实例资源
导航至 故障演练 > 目标应用 > 应用资源 页面。
在资源类型页签中选择分布式消息服务Kafka,然后单击添加资源。
在弹出的对话框中,勾选目标分布式消息服务Kafka实例,单击确定。
2、编排演练任务
导航至 故障演练 > 目标应用 > 演练管理页面,单击新建演练。
在基本信息页面,按提示填写演练名称和描述,然后单击下一步。
在演练对象配置页面:
配置动作组:为动作组命名,资源类型选择分布式消息服务Kafka。
添加实例:单击添加实例,勾选上一步中添加的分布式消息服务Kafka实例。
添加故障动作:单击立即添加,在列表中选择分区Leader不可用动作。
在弹出的参数配置框中,配置所需参数,然后单击确定。
持续时间:故障动作持续时间。
主题分区:指定需要模拟分区Leader不可用的目标对象。
3、配置全局策略
在全局配置页面,按需添加保护策略和监控指标。
配置完成后,单击完成按钮,创建演练任务。
4、发起故障注入
发起演练:在演练管理列表找到对应演练任务,单击操作列的执行演练,在新页面中点击发起新演练。
进入实验:系统将自动跳转到本次演练的运行详情页,或在演练执行记录列表点击对应执行实例的详情进入。
注入故障:在动作组中,找到分区Leader不可用动作卡片,单击执行。
查看日志:单击动作卡片本身,在右侧弹出的侧边栏中查看执行详情。
效果验证
在故障注入期间,您可以通过以下方式验证演练效果:
1、观测实例指标:
登录分布式消息服务Kafka控制台,观测分区指标。
2、业务应用验证:
检查您的生产者和消费者应用的日志,确认是否存在因找不到领导者(No Leader available)、分区不可用、请求超时等原因导致的错误。
确认您的业务监控系统是否成功捕获到 Kafka 分区Leader不可用、Leader重选举等集群异常及客户端错误,并触发了相应的告警。
验证您的客户端重试机制、分区Leader自动切换适配逻辑是否按预期工作,确保故障后能正常连接新选举的Leader并恢复消息收发。