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

本文分享自华为云社区《新特性速览!Sermant重磅更新,1.3.0 release版本发布》,作者:华为云开源。

Sermant社区在12月份正式发布了1.3.0 release版本,这次更新中,Sermant新增服务治理插件:消息队列禁止消费插件。该插件允许在微服务运行时动态地控制消费者(如Kafka、RocketMQ)的消费行为,实现禁止或开启消费,强化了Sermant的可用性治理能力。

除此之外,本次版本更新还对Seramnt框架存在的已知问题和部分功能进行了修复和优化。(Sermant官网:sermant.io/)

一、服务治理能力提升

1.1 动态调整消费者消费行为

本次Sermant更新新增了消息队列禁止消费插件,该插件允许微服务在运行态根据实际需求动态调整消费者对消息队列中间件的消费行为,确保在非正常环境或状态下,业务处理流程中的消息得到妥善管理,避免不必要的业务影响。例如,在多云多活架构系统中,如果发生区域性故障需要对流量做切流处理,可在发生故障的可用区开启消息队列禁止消费功能,让正常可用区的消费者来处理业务,避免故障区域消费流量导致业务异常,保障系统的高可用。待故障处理完成后,可重新开启消费。

图1 消息队列禁止消费插件故障切流场景使用

消息队列禁止消费插件目前支持Kafka和RocketMQ两种消息中间件。在Kafka方面,该插件实现了Topic级别的禁止和恢复消费功能。对于RocketMQ, 控制消费的粒度为消费者实例级别。关于消费队列禁止消费插件的具体介绍、配置说明和场景演示等请参考官网文档消息队列禁止消费

二、Sermant 框架提升

2.1 可观测性能力提升

支持通过指令查询Sermant对宿主应用的增强信息,包括被增强的类和方法以及具体的Interceptor,有助于提升Sermant的可观测能力。可用于开发调试场景中,判断是否对宿主类增强成功。

在Sermant通过任意方式启动成功后,运行官方提供的AgentLoader,并传入参数下发查询增强信息的指令command=CHECK_ENHANCEMENT,即可在日志中查看到Sermant已执行的增强信息,打印内容如下所示。具体操作请参考官网文档增强信息查询

less 复制代码
xxxx-xx-xx xx:xx:xx.xxx [INFO] [com.huaweicloud.sermant.core.command.CheckEnhancementsCommandExecutor] [execute:42] [Attach Listener] ---------- PLUGINS ----------  
xxxx-xx-xx xx:xx:xx.xxx [INFO] [com.huaweicloud.sermant.core.command.CheckEnhancementsCommandExecutor] [execute:44] [Attach Listener] test-plugin-A:1.0.0  
xxxx-xx-xx xx:xx:xx.xxx [INFO] [com.huaweicloud.sermant.core.command.CheckEnhancementsCommandExecutor] [execute:44] [Attach Listener] test-plugin-B:1.0.0  
xxxx-xx-xx xx:xx:xx.xxx [INFO] [com.huaweicloud.sermant.core.command.CheckEnhancementsCommandExecutor] [execute:46] [Attach Listener] ---------- ENHANCEMENT ----------  
xxxx-xx-xx xx:xx:xx.xxx [INFO] [com.huaweicloud.sermant.core.command.CheckEnhancementsCommandExecutor] [execute:58] [Attach Listener] test-plugin-A:1.0.0  
xxxx-xx-xx xx:xx:xx.xxx [INFO] [com.huaweicloud.sermant.core.command.CheckEnhancementsCommandExecutor] [execute:65] [Attach Listener] xxxxx.xxxx.TestClassA#testFunctionA(boolean,java.lang.String,java.lang.String,java.lang.String)@sun.misc.Launcher$AppClassLoader@5c647e05 [xxxx.xxxx.TestInterceptorA]  
xxxx-xx-xx xx:xx:xx.xxx [INFO] [com.huaweicloud.sermant.core.command.CheckEnhancementsCommandExecutor] [execute:65] [Attach Listener] xxxxx.xxxx.TestClassB#testFunctionB(boolean,java.lang.String,java.lang.String,java.lang.String)@sun.misc.Launcher$AppClassLoader@5c647e05 [xxxx.xxxx.TestInterceptorB,xxxx.xxxx.TestInterceptorC]

2.2 插件安装机制优化

增强Sermant Agent插件的安装机制,支持插件重复安装。用于需要动态扩展插件字节码增强范围(类和方法)的场景,如故障注入场景中通过插件的重复安装功能可以在原有故障注入基础上再注入一个新的故障。重复安装插件的实现基于Sermant插件的动态安装功能,具体操作请参考官网文档动态安装插件

2.3 问题修复

  • 修复个别场景下可以从插件类加载器中加载到宿主类的问题。进一步强化了Sermant的类隔离能力,避免与宿主服务发生类冲突问题。
  • 修复实例化拦截器时,偶发找不到宿主类的问题。从而确保了拦截器在执行增强逻辑时能够正常操作宿主类。

三、总结

本次版本更新主要为新增消息队列禁止消费插件。基于该插件,Sermant的服务治理能力得到进一步强化。同时本次版本更新对Seramnt框架存在的已知问题和部分功能进行了修复和优化,提升了Sermant的高可用性。

Sermant作为专注于服务治理领域的字节码增强框架,致力于提供高性能、可扩展、易接入、功能丰富的服务治理体验,并会在每个版本中做好性能、功能、体验的看护,广泛欢迎大家的加入。

点击关注,第一时间了解华为云新鲜技术~

相关推荐
程序员爱钓鱼23 分钟前
Go语言实战案例 — 工具开发篇:实现一个图片批量压缩工具
后端·google·go
ChinaRainbowSea2 小时前
7. LangChain4j + 记忆缓存详细说明
java·数据库·redis·后端·缓存·langchain·ai编程
舒一笑2 小时前
同步框架与底层消费机制解决方案梳理
后端·程序员
minh_coo2 小时前
Spring框架事件驱动架构核心注解之@EventListener
java·后端·spring·架构·intellij-idea
白初&4 小时前
SpringBoot后端基础案例
java·spring boot·后端
虎头金猫5 小时前
如何在Linux上使用Docker在本地部署开源PDF工具Stirling PDF:StirlingPDF+cpolar让专业操作像在线文档一样简单
linux·运维·ubuntu·docker·pdf·开源·centos
三花AI5 小时前
腾讯开源 HunyuanImage-2.1:17B 参数文生图模型原生支持 2K 高清
开源
计算机学姐6 小时前
基于Python的旅游数据分析可视化系统【2026最新】
vue.js·后端·python·数据分析·django·flask·旅游
算家计算6 小时前
面壁智能开源多模态大模型——MiniCPM-V 4.5本地部署教程:8B参数开启多模态“高刷”时代!
人工智能·开源
算家计算6 小时前
不止高刷!苹果发布会AI功能全面解析:实时翻译、健康监测重磅升级
人工智能·apple·资讯