Sermant重磅更新,1.3.0 release版本发布

💡 原文中文,约3200字,阅读约需8分钟。
📝

内容提要

华为云社区发布了Sermant 1.3.0版本,新增了消息队列禁止消费插件,提升了服务治理能力。修复了已知问题和优化了部分功能。

🔎

延伸解读

消息队列禁止消费插件的粒度差异

新插件对Kafka和RocketMQ的控制粒度不同:Kafka支持Topic级别的禁止与恢复消费,而RocketMQ则针对消费者实例级别进行控制。这种差异意味着在多云多活切流场景中,Kafka可按Topic精细操作,RocketMQ则需按实例整体处理,实际使用时需根据中间件类型调整治理策略。

故障切流场景下的动态消费控制

文章以多云多活架构的区域性故障为例,说明可在故障可用区开启禁止消费,让正常区消费者处理业务,避免故障区消费流量导致异常,待故障恢复后再重新开启。这体现了插件在运行态动态调整消费行为的能力,但需注意其前提是业务已具备多活切流的基础设施。

可观测性增强的调试价值

通过AgentLoader下发CHECK_ENHANCEMENT指令,可查询Sermant对宿主应用增强的类、方法及具体Interceptor。该功能主要用于开发调试阶段,帮助判断增强是否成功,日志会列出插件及对应的增强信息,便于定位字节码增强问题。

插件重复安装与类隔离修复

1.3.0支持插件重复安装,适用于动态扩展字节码增强范围的场景,例如在原有故障注入基础上再注入新故障。同时修复了插件类加载器可能加载宿主类的问题,强化类隔离,并修复实例化拦截器时偶发找不到宿主类的问题,减少与宿主服务的类冲突风险。

❓

Q&A

Sermant 1.3.0版本新增了哪些服务治理插件?

新增了消息队列禁止消费插件,该插件允许在微服务运行时动态控制消费者(如Kafka、RocketMQ)的消费行为,实现禁止或开启消费。

消息队列禁止消费插件支持哪些消息中间件?

目前支持Kafka和RocketMQ两种消息中间件。对于Kafka,插件实现Topic级别的禁止和恢复消费功能;对于RocketMQ,控制消费的粒度为消费者实例级别。

在什么场景下可以使用消息队列禁止消费插件?

例如在多云多活架构系统中,发生区域性故障需要切流时,可在故障可用区开启禁止消费,让正常可用区的消费者处理业务,避免故障区域消费流量导致业务异常,保障系统高可用。待故障处理完成后可重新开启消费。

如何查询Sermant对宿主应用的增强信息?

在Sermant启动成功后,运行官方提供的AgentLoader,传入参数command=CHECK_ENHANCEMENT,即可在日志中查看已执行的增强信息,包括被增强的类、方法和Interceptor。

Sermant 1.3.0在插件安装机制上有什么优化?

支持插件重复安装,适用于需要动态扩展插件字节码增强范围的场景,例如在故障注入场景中通过重复安装再注入一个新的故障。

Sermant 1.3.0修复了哪些问题?

修复了个别场景下可以从插件类加载器中加载到宿主类的问题,强化了类隔离能力;修复了实例化拦截器时偶发找不到宿主类的问题,确保拦截器能正常操作宿主类。

🏷️

标签

➡️

继续阅读