新特性速览! Sermant 2.1.0版本重磅发布

9月底,Sermant社区正式发布了2.1.0 Release版本,本次版本更新为大家带来了许多新的重要特性。在此前版本xDS协议支持的基础上,2.1.0版本新增了路由和负载均衡的CRD的支持,同时路由插件也适配了当前的xDS协议。此外新增了RocketMQ灰度发布插件,首次支持了消息队列的灰度发布;用户体验上,我们对Backend的Agent管理功能再次进行了完善,现在可以直接在Backend上直接对插件进行动态热插拔。

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

一、Agent服务治理能力提升

1.1 Sermant框架新增支持xDS协议路由配置

Sermant框架层基于xDS协议实现了路由配置的获取能力,插件可以调用xDS路由配置服务接口获取Kubenetes Service的路由配置。Istio通过下发DestinationRule 和VirtualService 自定义资源文件下发路由配置。Sermant基于xDS协议和Istio的控制平面协议进行通信获取路由配置。

该特性对标准的VirtualService 和DestinationRule下发的路由header、路径匹配等规则实现了支持。如下所示

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: spring-test-virtualservice
spec:hosts:- spring-testhttp:- name: "v1-routes"match:- headers:version:exact: v1uri:exact: /testignoreUriCase: falseroute:- destination:host: spring-testsubset: v1port:number: 8003weight: 100- name: "base-route"route:- destination:host: spring-testsubset: baseport:number: 8003

1.2 Sermant框架新增支持xDS协议负载均衡配置

Sermant框架层基于xDS协议实现了负载均衡配置的获取能力,插件可以调用xDS负载均衡配置服务接口获取Kubenetes Service的负载均衡配置。Istio通过下发DestinationRule自定义资源文件下发负载均衡配置。Sermant基于xDS协议和Istio的控制平面协议进行通信获取负载均衡配置。

该特性对标准的DestinationRule下发负载均衡策略实现了支持。如下所示

apiVersion: networking.istio.io/v1alpha3kind: DestinationRulemetadata:name: spring-test-destinationrulespec:host: spring-test.default.svc.cluster.localtrafficPolicy:loadBalancer:simple: ROUND_ROBINsubsets:- name: v1labels:version: v1trafficPolicy:loadBalancer:simple: RANDOMsubsets:- name: baselabels:version: base

1.3 路由插件新增对xDS协议的支持

在2.1.0版本中,路由插件中的HTTP调用兼容了xDS协议,包括SpringCloud、HttpClient、HttpAsyncClient、OkHttp、HttpURLConnection,支持通过请求header和路径进行流量路由。在混合部署模式下的Sermant和envoy互调以及Proxyless模式下的挂载Sermant微服务之间的调用都已支持。

该能力开启与否只需在配置文件中进行开关控制,微服务部署按照Istio标准部署方式,只需要把envoy注入关闭即可。具体使用方式可参考路由插件说明。

1.4 RocketMQ灰度发布

本次版本新增了消息队列灰度发布插件,在灰度流量的基础上增加环境灰度判断,通过在消息中设置不同属性标签消息以达到灰度效果。该特性可以使用灰度版本的微服务实例中生产者和消费者来生产灰度消息或者消费灰度消息,满足灰度发布在业务场景中定向生产和消费的需要,降低开发风险和试错成本,助力快速敏捷迭代。

在生产消息时,根据当前实例信息是否满足灰度环境及请求是否为灰度请求来设置灰度环境标签、灰度流量标签。

在消费消息时,如果当前实例信息满足灰度环境,那么当前实例归为灰度消费者,并在消费组名称后面拼接灰度环境标签,仅消费灰度环境标签、灰度流量标签消息;如果当前实例信息不满足灰度环境,那么当前实例归为基线消费者,基线消费消息时包含base、auto两种种模式:

base模式下,可根据配置过滤灰度组对应的标签的消息,如果没有配置,则默认消费所有消息;

auto模式下,在没有灰度消费组情况下,根据配置过滤灰度组对应标签的消息,然后定期检查当前服务地址、topic及消费组下是否有灰度消费组正在消费消息,如果存在,则不消费灰度消费组包含的灰度标签消息。

二、  Sermant Backend治理能力提升

2.1 Sermant Backend对插件的热插拔管理的支持

在1.2.0 release版本后,我们支持了Sermant Agent框架和插件的动态安装和动态卸载,使得Sermant拓展出更多的Sermant的使用场景,例如故障注入等。

此前动态热插拔使用命令或脚本来执行,本次版本更新针对这一特性,在Sermant Backend新增了对插件热插拔、热更新管理的可视化支持。用户可以直接在Backend的实例状态管理页面中对指定服务实例上的插件进行一键卸载、安装、更新操作,同时还支持批量操作。命令执行成功后,可以在实例状态页面查看已经安装的插件的信息;在事件管理页面也可以收到插件安装、卸载的事件详情。

该特性提升了用户插件动态安装卸载的场景的便利性,丰富了Backend的观测管理能力,用户可以直观地对已经挂载Sermant的实例做热插拔插件的操作。

三、总结

本次版本还修复了社区中提出的issue,例如优雅上下线的偶发调用失败问题、Backend使用Redis存储心跳时的查询失败问题等。具体Release Note可以查阅GitHub发布页。

我们最新发布的2.1.0版本深化了xDS协议的支持以及在插件中的应用,强化了灰度发布在消息队列场景的使用,并且提升了Backend在动态热插拔插件使用时的体验。未来我们将持续演进,给社区带来更多新的内容。


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

  • Sermant 官网:https://sermant.io
  • GitHub 仓库地址:https://github.com/sermant-io/Sermant
  • 扫码加入 Sermant 社区交流群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1562218.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

注册电气工程师印章要求

一、边框 1.尺寸:长63mm、宽28mm、线宽:0.6mm 2.第一格:宽7.25mm 3.第二格:宽19.2mm 二、文字 1.第一行 名称:行长59.50mm 字高5.61mm 字体 宋体 2.第二行 姓名:行长42.00mm 字高5.28mm 字体 姓名 宋体 人名…

超声波清洗机靠谱吗?适合学生党入手的四款眼镜清洗机品牌推荐!

有没有学生党还不知道双十一买什么?其实可以去看看超声波清洗机,说实话它的实用性真的很高,对于日常用于清洗眼镜真的非常合适,不仅可以帮助大家节约时间而且还能把眼镜清洗的干净透亮,接下来我就来为大家带来四款好用…

【光通信接口】了解差异: SFP28 与 SFP+ 收发器

原文链接 https://www.fibermall.com/blog/sfp28-vs-sfp-plus.htm 目录 导引 1. 什么是 sfp28 收发器?1.1 sfp28 收发器的定义1.2 sfp28 与 sfp 相比有何优势?1.3 sfp28 的优势 2. sfp28 与 sfp 相比有何优势?2.1 sfp28 背后的技术2.2 数据速…

WordPress添加meta标签做seo优化

一、使用function.php文件添加钩子函数添加 方法1、使用is_page()判断不同页面的page_id进行辨别添加不同页面keyword和description (1)通过页面前台源码查看对应页面的id (2)或者通过wordpress后台,点击页面列表&…

领夹麦克风背后的技术秘密:音频质量与便携性的双重提升

在当今市场,一款备受瞩目的直播神器——无线领夹麦克风(MIC),正以其独特魅力风靡于网红直播、在线教育、专业采访、高清视频录制及视频会议等多个领域。这款麦克风不仅保留了传统麦克风的基本功能,更在形式上和功能上实…

2-laravel-路由配置

文章目录 定义控制器设计控制器设置路由启动服务 基本路由视图路由建立视图路由建立视图文件 控制器视图路由创建视图二级目录控制器 定义控制器 打开laravel 工程 建立一个 Demo 名字的控制器去集成 模板控制器 安装两个插件 设计控制器 <?phpnamespace App\Http\…

Tomcat部署java项目,反馈漏洞CVE-2005-4900: TLS SHA-1 安全漏洞(中危) *

根据项目反馈漏洞处理&#xff0c;修复部署SSL证书时反馈TLS1.2版本漏洞&#xff1a; 漏洞描述如下&#xff1a; 漏洞类型&#xff1a;密码学问题 漏洞描述&#xff1a; TLS &#xff08;全称 Transport Layer Security&#xff0c;安全传输层 协议&#xff09;是一套用于在两…

C++学习日记 | Lecture 11 类的动态内存管理

资料来源&#xff1a;南科大 余仕琪 C/C Program Design LINK&#xff1a; CPP/week11 at main ShiqiYu/CPP GitHub11.1-some-default-operations_哔哩哔哩_bilibili11.2-an-example-with-dynamic-memory_哔哩哔哩_bilibili11.3-solution1-hard-copy_哔哩哔哩_bilibili11.4…

vant +vite 设计稿是750,postCssPxToRem如何配置

废话不多说直接上代码&#xff1a; 在vite.config.ts 中配置&#xff1a; css: {postcss: {plugins: [postCssPxToRem({rootValue({ file }) {if (file && file.indexOf(vant) ! -1) {return 37.5}return 75},propList: [*]})]},}, 详细配置可看官网&#xff1a; 官…

豆包MarsCode体验有京东卡和现金

https://www.marscode.cn/events/s/iBpts1oT/ 先登录注册 然后到VSCODE里&#xff0c;在最左侧导航栏处看到EXTEBSIONS点一下&#xff08;快捷键CtrlShiftX&#xff09;&#xff0c;然后搜索MarsCode&#xff0c;并安装插件。 安装后登录体验一次问答即可。然后回到活动页即…

信息学奥赛复赛复习16-CSP-J2022-01乘方-循环特判、pow函数、快速幂

PDF文档回复:20241012 此前解析题&#xff0c;P8813 [CSP-J 2022] 乘方&#xff0c;给出了循环的解题思路&#xff0c;当时在洛谷提交是通过的&#xff0c;后台收到留言&#xff0c;a1,b1e9会炸吧&#xff1f;&#xff0c;确实啊整除要求1s内循环次数最大可以到10^7,现在测试数…

AI绘图如何变现,看完这篇保姆级教程,你也会了!

哈喽&#xff0c;各位小伙伴们&#xff01;今天我要给你们送上我正在捣鼓的AI绘画商业项目的超详细指南。这份指南就像是个超级保姆&#xff0c;专门照顾你的AI绘画项目&#xff0c;让你省心省力。重点在于那些实用的技术细节&#xff0c;我保证你一看就能明白。 让我们带着你…

Python 如何处理数据库事务

Python 如何处理数据库事务 数据库事务是指一组操作要么全部执行成功&#xff0c;要么全部回滚的过程。事务是确保数据库一致性的重要手段&#xff0c;特别是在处理需要多步操作的场景时&#xff0c;能够避免部分数据成功更新而部分数据失败的情况。本文将详细介绍什么是数据库…

关于Amazon Linux 2023的版本及包管理器

在亚马逊上创建EC2实例时&#xff0c;会看到有一个Amazon Linux镜像。 那这个镜像与其他Linux有什么关系和区别呢&#xff1f; 网站是介绍&#xff1a;Amazon Linux 2023 是基于 Linux 的现代化通用操作系统&#xff0c;提供 5 年的长期支持。它针对 AWS 进行了优化&#xff0…

【Python】 列表解析 语法 实例展示 说明统统一顿明白!!!

列表解析 根据已有列表&#xff0c;高效创建新列表的方式。 列表解析是Python迭代机制的一种应用&#xff0c;它常用于实现创建新的列表&#xff0c;因此用在[]中。 语法&#xff1a; [expression for iter_val in iterable] [expression for iter_val in iterable if con…

代码注释,是程序员的美德还是无能的表现?

前言 嗨&#xff0c;大家好&#xff01; 今天咱们来聊聊一个老生常谈但又永远不过时的话题 —— 代码注释。 你是不是也经历过这样的时刻&#xff1a;打开一段陌生的代码&#xff0c;就像进入了迷宫一样找不到北&#xff1f;这时候&#xff0c;一个好的注释简直就是你的指路…

飞机大战ai通过dqn实现

借鉴 飞机大战源码 github 王者荣耀ai训练(试了一下&#xff0c;发现电脑带不动&#xff0c;就改了一点&#xff0c;训练其他游戏) 源码 通过网盘分享的文件&#xff1a;PlaneWar (2).zip [链接]&#xff08;https://pan.baidu.com/s/1N4OorR7b36Zml8MadGmI6g?pwd1234&#xf…

第十六章 RabbitMQ延迟消息之延迟插件优化

目录 一、引言 二、优化方案 三、核心代码实现 3.1. 生产者代码 3.2. 消息处理器 3.3. 自定义多延迟消息封装类 3.4. 订单实体类 3.5. 消费者代码 四、运行效果 一、引言 上一章节我们提到&#xff0c;直接使用延迟插件&#xff0c;创建一个延迟指定时间的消息&…

晶体匹配测试介绍

一、晶体参数介绍 晶体的电气规格相对比较简单,如下: 我们逐一看看每个参数, FL就是晶体的振动频率,这个晶体是24.576MHz的。 CL就是负载电容,决定了晶体频率是否准确,包括外接的实际电容、芯片的等效电容以及PCB走线的寄生电容等,核心参数。 Frequency Tolerance是…

堆排序(C++实现)

参考&#xff1a; 面试官&#xff1a;请写一个堆排序_哔哩哔哩_bilibiliC实现排序算法_c从小到大排序-CSDN博客 堆的基本概念 堆排实际上是利用堆的性质来进行排序。堆可以看做一颗完全二叉树。 堆分为两类&#xff1a; 最大堆&#xff08;大顶堆&#xff09;&#xff1a;除根…