持续演进!Sermant 2.3.0 Release 版本正式发布

2025 年中,Sermant 社区正式发布了2.3.0 Release版本。本次更新在流量治理、xDS 支持等方面推出了新的重要特性:
(1)在已有 xDS 功能的基础上,重构 Sermant xDS 特性模块,实现其与基础治理插件的解耦,抽出了独立的 xDS 插件。
(2)在新的 xDS 插件中新增支持 xDS 安全特性,实现对等认证、请求认证及授权策略支持。
(3)流量标签透传插件新增支持 servlet5.x,6.x、OkHttp3.x,4.x 以及 feign11.x 组件版本。
(4)流控插件支持 Dubbo3.x 的限流和熔断特性。
(5)支持通过配置忽略增强特定 JavaAgent 的类加载器,避免了额外的类加载增强过程中的开销。
除此之外,本次版本更新还对社区提出的已知问题和部分功能进行了修复和优化。(Sermant 官网:https://sermant.io/)。
一、xDS 协议支持扩展
1.1 Sermant 新增支持 xDS 安全特性
在此前版本,Sermant 实现了基于 xDS 协议的路由、负载均衡、流控能力,本次更新新增基于 xDS 协议的安全能力。
在 Istio 中,安全相关的规则可以通过 PeerAuthentication、RequestAuthentication 和 AuthorizationPolicy 自定义资源文件来进行配置。本次版本中,Sermant 框架层基于 xDS 协议实现了上述安全配置的获取能力,并且在 xDS 插件中实现了对等认证、请求认证、授权策略的支持。
基于 xDS 协议,Sermant 框架层新增了对标准的 PeerAuthentication、RequestAuthentication 和 AuthorizationPolicy 下发的安全规则的支持,用户可通过原生的 Istio 流量管理的使用方式来进行配置。
例如,基于 JSON Web Token(JWT)的请求认证策略可通过原生的 RequestAuthentication 来进行配置:
基于上述配置可以对服务网格中 HTTP 请求提供了安全、无状态、标准化的方式来验证用户身份(认证)和传递用户权限信息(授权),可用于微服务间的安全通信、跨域认证等场景,
其他的安全相关配置与之类似,更多指导请参考基于xDS服务的安全能力说明。在 Istio+Sermant 部署场景下,微服务通过接入该能力,可以有效提升系统的安全性,减轻对数据、端点、通信和平台的内外威胁。

基于上述的 xDS 协议的证书管理、认证和授权策略的支持,Istio+Sermant 的部署场景可以帮助用户在不受信任的网络上构建安全解决方案,为系统的安全提供更多的防御。
1.2 xDS 独立插件
将 Sermant 的 xDS 特性从原有插件中独立为单独插件,是架构设计上的重要优化。这一改动主要围绕解耦核心能力和提升架构灵活性展开。原来的基于 xDS 协议的路由、负载均衡、流控能力分散在路由插件、流控插件这些不同的插件中。如果用户需要统一接入 xDS 功能,需要挂载多个插件。将 xDS 功能独立为 xDS 插件后,不仅降低了用户接入 xDS 功能的配置复杂度,提升了易用性,也为插件功能的扩展性提供了基础,例如上一节新增支持的 xDS 安全特性。另外,原有插件的 xDS 功能目前暂时保留,将在未来版本标记为废弃,建议用户优先使用 xDS 插件,更多介绍请参考xDS插件说明。
二、流量治理能力提升——流量标签透传扩大支持范围
流量标签透传插件是社区用户使用的热门插件,此前已经实现了对 HttpClient、RocketMQ、Dubbo、Grpc 等组件部分版本的支持。我们曾经也对该插件的使用场景进行了具体的介绍,可以移步《流量治理的基石——基于字节码增强的全链路流量标签透传》查看。


在本次 2.3.0 版本中,为了更好地支持全链路灰度发布等场景对于流量标签透传的需求,我们新增支持了 Servlet 5.x,6.x、OkHttp 3.x,4.x 以及 feign11.x 组件版本,对于扩大了 HTTP 的客户端、服务端的支持范围。未来我们还将继续对组件和版本的支持进行扩展,敬请期待。
三、多 JavaAgent 的兼容性提升
该问题是 JavaAgent 多实例运行时的重要性能和兼容性陷阱。当多个 Agent 同时运作时,一个 Agent 可能扫描并尝试增强其他 Agent 的类,这不仅造成启动时间延长,也可能导致类冲突问题。

本次新版本 Sermant 可通过配置忽略增强特定的类加载器,例如可以忽略其他的 Agent 的私有类加载器,避免了额外的类加载增强过程中的开销,降低多 Agent 协同场景下的应用启动耗时和 CPU 消耗。
四、总结
本次版本还修复了社区中提出的 Bug,例如消息灰度插件对 RocketMQ retry-topic 的支持、xDS 流控对配置中毫秒级时间单位的支持等;另外对 Nacos 作为配置中心的配置监听的性能也做了优化。具体 Release Note 可以查阅GitHub发布页。
本次版本更新在流量治理、xDS 协议的支持、多 Agent 的兼容等方面做了大量工作,进一步提升了 Sermant 服务治理能力的完备性。感谢社区各位开发者的贡献和关注,未来我们将在云原生领域持续演进,为社区用户带来更好的体验。
Sermant 作为专注于服务治理领域的字节码增强框架,致力于提供高性能、可扩展、易接入、功能丰富的服务治理体验,并会在每个版本中做好性能、功能、体验的看护,广泛欢迎大家的加入。
Sermant 官网:https://sermant.io
GitHub 仓库地址:https://github.com/sermant-io/Sermant
扫码加入 Sermant 社区交流群

评论