Sermant社区在6月底正式发布了2.0.0 release版本,这次更新中,Sermant进行了项目所属组织调整并新增了基于xDS协议的服务发现能力、预过滤启动加速机制、Sermant Backend的配置管理能力。所属组织调整使得Sermant淡化厂商属性,以全新的姿态更好的拥抱开源。实现基于xDS协议的服务发现能力后,Sermant具备了对接Istio的控制平面获取Kubernetes Service信息和其对应的具体服务实例信息的能力。预过滤启动加速机制使得Sermant能够通过首次运行生成预过滤名单的方式降低后续启动过程的耗时。此外,Sermant Backend支持了配置管理能力,用户可以在Sermant Backend进行配置新增、修改等操作。

本次版本更新之后,不但Sermant动态挂载能力支持了自定义输入参数,而且Sermant Backend还新增了国际化版本。除此之外,本次版本更新还对Sermant框架存在的已知问题和部分功能进行了修复和优化。(Sermant官网:https://sermant.io/)

一、  项目所属组织调整

为了更好的拥抱开源,更好的体现项目的开放性,我们决定调整项目所属组织,淡化厂商属性。从Sermant 2.0.0版本开始,Sermant项目在GitHub所属组织从huaweicloud调整到了sermant-io。我们希望可以有更多的成员加入我们社区,一起为Sermant社区的开发建设做贡献,我们也欢迎更多的开发者可以成为Sermant社区的Committer成员。如何加入社区可以参考我们的官方文档加入社区。

由于项目所属组织的调整,Sermant 2.0.0版本之后,项目的groupId从com.huaweicloud.sermant调整为了io.sermant,使用2.0.0版本及之后的Sermant插件或者框架时需采用新的依赖信息。以sermant-agent-core为例,

升级前:

<dependency>  <groupId>com.huaweicloud.sermant</groupId>  <artifactId>sermant-agentcore-core</artifactId>  <version>1.4.1</version>  
</dependency>

升级后:

<dependency>  <groupId>io.sermant</groupId>  <artifactId>sermant-agentcore-core</artifactId>  <version>2.0.0</version>  
</dependency>

另外,Sermant相关的类在import时的包名也从com.huaweicloud.sermant调整到了io.sermant。更多版本升级兼容性问题,请参考官方文档版本升级兼容性。

二、  Sermant 框架能力提升

2.1      基于xDS协议的服务发现

xDS协议是服务网格之间进行数据通信的设计标准,典型的服务网格如采用Sidecar代理模式的Istio。本次Sermant 2.0.0版本支持了xDS协议,具备了和Istio的控制平面直接进行通信的能力。在此基础上新增了基于xDS协议的服务发现能力,允许在Kubernetes容器环境下接入服务网格控制平面,获取Kubernetes Service信息和其对应的具体服务实例信息。

Sermant基于xDS协议的服务发现能力采用Istio+Sermant的Sidecar无代理模式部署形态,支持混合部署模式和无代理部署模式,如下图所示。混合部署模式下,Sidecar代理模式和Sidecar无代理模式共存,可以避免修改已有的部署架构,仅新增服务使用Sidecar无代理模式即可。无代理部署模式下,所有的业务微服务均使用Sermant作为Istio的数据平面实现服务发现、路由等能力,当前已经支持了服务发现,未来功能将持续演进。

Istio环境下使用Sermant相较于Envoy(Sidecar代理模式)具有以下优势:

  • Sermant和业务微服务同进程运行,无需启动额外的Sidecar容器,大幅减少网络调用时延和CPU损耗。

  • 基于Sermant框架开发插件可以实现比Envoy更丰富的治理能力,可扩展性更强。
  • 更低的架构复杂度可以带来更低的部署成本。

基于xDS协议的服务发现的开发者手册请参考官方文档基于xDS协议的服务发现。

2.2      预过滤启动加速机制

为了减少挂载Sermant带来的额外启动耗时,减轻Sermant对宿主服务整体启动时长的影响,Sermant 2.0.0版本新增了预过滤启动加速机制。该机制允许宿主应用程序在正式启动前挂载Sermant进行预过滤,在开启Sermant预过滤开关时,宿主应用程序挂载Sermant会生成过滤文件,过滤文件包含宿主应用程序不需要匹配和增强的类名。在正式启动时,Sermant会获取预过滤生成的过滤文件,并在字节码增强的匹配过滤器中忽略它们,可以大幅节省启动时间,尤其对于CPU和内存资源较为紧张的场景,优化效果更为明显。

2.3      动态挂载能力提升

Sermant 2.0.0版本提升了动态挂载能力,支持用户自定义输入参数。后续用户在使用动态挂载能力挂载Sermant时,可以按照自己的需求添加额外的参数,并可以在插件中获取。例如采用如下的方式传输自定义参数:

command=INSTALL-PLUGINS:monitor,key1=value1,key2=value2

三、  Sermant Backend治理能力提升

3.1      新增配置管理

为了让Sermant的服务治理功能能够更好的可视化管理,Sermant 2.0.0版本中Sermant Backend组件新增了插件的动态配置管理功能。用户访问Sermant Backend页面,不仅可以查看Sermant的运行状态,还可以进行配置管理的相关操作。用户可以在页面上更方便的管理插件配置,调整微服务的治理规则。

配置管理支持对开源插件和用户自定义插件的动态配置进行增删改查,目前配置管理能力支持Nacos、Zookeeper、Kie三种配置中心。以下图片展示了Sermant Backend配置管理的部分能力。

  • 查询插件配置

  • 新增插件配置

3.2      新增英文版本

在Sermant 2.0.0版本之后,Sermant Backend已支持英文版本。用户可以在页面上选择自己要使用的语言类型。英文版页面效果如下所示:

四、  总结

本次版本更新主要调整了项目所属组织,新增了基于xDS协议的服务发现能力、预过滤启动加速机制、Sermant Backend的配置管理能力,实现了和开源技术生态更好的结合以及Sermant的使用体验的优化。同时本次版本更新对Sermant框架存在的已知问题和部分功能进行了修复和优化,提升了Sermant的稳定性。

在2.0.0版本发布后,Sermant将进一步提升开源技术生态的建设,更好的和云原生技术进行有机结合。我们也欢迎更多的开源开发者和用户一起参与开源社区的共建,在社区中担任更重要的角色。


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

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

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sqli-labs通关笔记-第28a关GET字符注入(多重关键字过滤绕过 脚本法)

目录 一、sqlmap之tamper脚本 二、源码分析 1、代码审计 2、SQL安全性分析 三、渗透实战 1、进入靶场 2、tamper脚本 3、sqlmap渗透 SQLI-LABS 是一个专门为学习和练习 SQL 注入技术而设计的开源靶场环境&#xff0c;本小节对第28a关Less 28a基于GET字符型的SQL注入关卡…

联想打印机2268w安装

联想打印机2268w是支持无线打印的。在某度搜索&#xff0c;掀起盖子长按开机键&#xff0c;成功初始化。之后按说明应该能用手机搜索到打印机的热点&#xff0c;反复搜索都没有出现。最后没办法&#xff0c;之后好用我自己的方法安装。找了个笔记本&#xff0c;开机连接到wifi,…

【LeetCode】动态规划——72.编辑距离、10.正则表达式匹配

LeetCode题目链接 https://leetcode.cn/problems/edit-distance/description/ https://leetcode.cn/problems/regular-expression-matching/description/ 题解 72.编辑距离 本题要定义为长度为i、长度为j的字符串的最少编辑次数&#xff0c;每次判断字符的下标为i-1、j-1。dp[i…

[亲测可用]Android studio配置国内镜像源 Kotlin DSL (build.gradle.kts)

一、更改gradle下载镜像Android studio项目需要下载和更新 Gradle 及其依赖。由于网络环境&#xff0c;直接从 Gradle 官网下载可能会遇到速度慢或超时的问题。这里需要更换为使用国内的镜像站点来加速下载。官网地址&#xff08;较慢&#xff09;&#xff1a;https://services…

《跳出“技术堆砌”陷阱,构建可演进的软件系统》

很多团队陷入了“技术焦虑式开发”—盲目追逐热门框架&#xff0c;将“使用微服务”“引入云原生”“集成AI组件”当作架构先进的标签&#xff0c;却忽视了业务与技术的底层匹配逻辑。某互联网团队为了“彰显技术实力”&#xff0c;在内部协同工具中强行接入机器学习推荐模块&a…

赋能你的应用:英超实时数据接入终极指南(API vs. WebSocket)

在当今数据驱动的时代&#xff0c;为您的应用程序注入实时、准确的英超赛事数据&#xff0c;是提升用户体验、打造差异化竞争力的关键。无论是开发一款球迷必备的比分追踪App&#xff0c;一个深度专业的赛事分析平台&#xff0c;还是一个充满互动性的梦幻足球游戏&#xff0c;首…

计算机网络:(poll、epoll)

一、select的不足1. 最大监听数受限&#xff1a;FD_SETSIZE 默认 1024&#xff08;Linux&#xff09;2. 每次调用需重置 fd_set&#xff1a;内核会修改集合&#xff0c;必须每次重新 FD_SET3. 用户态与内核态拷贝开销大4. 返回后仍需遍历所有 fd 才能知道哪个就绪5. 效率随 fd …

网络编程之设置端口复用

首先来说一下为什么要设置端口复用&#xff0c;有些时候在调试服务器代码时势必会经常启动或结束服务器进程&#xff0c;这样就会出现当再次启动服务器时有可能会出现端口绑定失败的情况&#xff0c;造成这个情况的原因是由于你上次关闭服务器时有连接尚未断开等等其他原因&…

stargo缩扩容starrocks集群,实现节点服务器替换

1.背景在企业中可能需要&#xff0c;将starrocks的某一台服务器下架&#xff0c;换上另一台服务器&#xff0c;如何实现这个操作&#xff0c;本篇将进行介绍&#xff1b;节点hadoop101hadoop102hadoop103hadoop104集群原集群节点新节点fe✔✔❌&#xff08;下线&#xff09;✔&…

Linux -- 进程间通信【命名管道】

目录 一、命名管道定义 二、命名管道创建 1、指令 2、系统调用 3、删除 三、匿名管道和命名管道的区别 四、命名管道的打开规则 五、代码示例 1、comm.hpp 2、server.cc 3、client.cc 一、命名管道定义 # 匿名管道存在以下核心限制&#xff1a; 仅限亲缘关系进程&a…

LinuxC系统多线程程序设计

一.多线程程序设计1. 线程概述&#xff1a;1.1 什么是线程?线程是进程中的一个实体(组成单元),是系统进程调度的最小单元。一个进程至少具有一个线程&#xff0c;如果进程仅有一个线程&#xff0c;该线程就代表进程本身。把代表进程本身的线程称为主线程&#xff0c;一个进程…

Vue3 + TS + MapboxGL.js 三维地图开发项目

文章目录 1. 安装依赖 2. 新建 Map 组件(components/MapView.vue) 3. 在页面中使用(views/Home.vue) 4. 效果说明 1. 安装依赖 npm install mapbox-gl @types/mapbox-gl --save⚠️ 注意:需要去 Mapbox 官网,申请一个 access token。 package.json {"name":…

【编程语言】Rust 入门

目录 一、Rust 是什么&#xff1f;为什么选择它&#xff1f; 二、环境搭建&#xff0c;迈出第一步 2.1 Windows 系统安装步骤 2.2 macOS 系统安装步骤 2.3 Linux 系统安装步骤 2.4 安装过程中的常见问题及解决方案 三、基础语法&#xff0c;构建知识大厦的基石 3.1 变量…

Python 编码与加密全解析:从字符编码到 RSA 签名验证

在 Python 开发中&#xff0c;字符编码&#xff08;如 UTF-8、GBK&#xff09;和 数据加密&#xff08;如 Base64、MD5、RSA&#xff09;是处理数据传输、存储安全的核心技术。本文结合实战代码&#xff0c;从基础的字符编解码入手&#xff0c;逐步深入到加密算法的应用&#x…

关于shell命令的扩展

目录 一、逻辑运算符 1. &&&#xff08;AND&#xff09; 2. ||&#xff08;OR&#xff09; 3. 组合使用&#xff1a;A && B || C 二、输出与重定向 1. echo 输出 2. 标准文件描述符&#xff08;FD&#xff09; 3. 重定向操作符 4. 同时重定向 stdout 和…

MySQL EXPLAIN 查看执行计划详解

MySQL 的 EXPLAIN 命令。这是一个分析和优化 SQL 查询性能不可或缺的强大工具。它展示了 MySQL 如何执行一条 SQL 语句&#xff0c;包括如何使用索引、表连接顺序、估计的行数等关键信息。1. 如何使用 EXPLAIN在你要分析的 SELECT 语句前加上 EXPLAIN 或 EXPLAIN FORMATJSON&am…

TensorFlow 面试题及详细答案 120道(51-60)-- 模型保存、加载与部署

《前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,SQL,Linux… 。 前后端面试题-专栏总目录 文章目录 一、本文面试题目录 51. TensorFlow中保存和加…

从零开始学Shell编程:从基础到实战案例

从零开始学Shell编程&#xff1a;从基础到实战案例 文章目录从零开始学Shell编程&#xff1a;从基础到实战案例一、认识Shell&#xff1a;是什么与为什么学1.1 Shell的定义1.2 常用Shell解释器二、Shell编程快速入门&#xff1a;编写第一个脚本2.1 步骤1&#xff1a;创建脚本文…

机器学习算法全景解析:从理论到实践

机器学习算法全景解析&#xff1a;从理论到实践引言机器学习作为人工智能的核心组成部分&#xff0c;正在深刻地改变我们的世界。从推荐系统到自动驾驶&#xff0c;从医疗诊断到金融风控&#xff0c;机器学习算法无处不在。本文将全面系统地介绍机器学习的主要算法类别及其核心…

week5-[二维数组]对角线

week5-[二维数组]对角线 题目描述 给定一个 nnn\times nnn 的正方形二维数组&#xff0c;输出它两条对角线上元素的和。 输入格式 输入共 n1n 1n1 行。 第 111 行 111 个正整数 nnn。 接下来 nnn 行&#xff0c;每行 nnn 个正整数 aija_{ij}aij​ 表示这个二维数组。 输出格式…