持续演进!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来进行配置:
apiVersion: security.istio.io/v1
kind: RequestAuthentication
metadata:
name: spring-provider
namespace: default
spec:
selector:
matchLabels:
app: spring-provider
jwtRules:
- issuer: "issuer-foo"
fromHeaders:
- name: x-jwt-assertion
prefix: "Bearer "
audiences:
- your-audience
基于上述配置可以对服务网格中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社区交流群
- 点赞
- 收藏
- 关注作者
评论(0)