首页 > 其他分享 >GOTC峰会Sermant发布1.1.0-beta版本,带来哪些提升?

GOTC峰会Sermant发布1.1.0-beta版本,带来哪些提升?

时间:2023-06-15 18:03:24浏览次数:38  
标签:调用 服务 1.1 GOTC App 能力 beta 版本 Sermant

5月27-28日,GOTC全球开源技术峰会在上海如约举办,Sermant也在GOTC中进行亮相,并参与了活动展台、快闪演讲等活动,吸引众多开发者深入了解Sermant的无代理微服务框架的非侵入、高性能、插件化的核心优势,并对探索实践和落地表现出极大兴趣。

本次GOTC峰会也邀请了Linux基金会执行董事、LF AI & Data 基金会执行董事,CNCF中国区总监、来百度、华为、腾讯、火山引擎、红帽、Intel、VMWare、F5、微软、开源中国等企业的全球开源重磅嘉宾出席。在峰会上,Sermant对5月23号社区发布的v1.1.0-beta版本进行首次公开宣讲,也让行业内专家和更多的开发者了解Sermant以及新版本带来的新特性和改进点。

此次发布的v1.1.0-beta版本对服务治理的可观测性,流量治理能力,以及可用性治理能力做出了很大提升,下面对这些提升点进行详细说明。

社区地址:https://github.com/huaweicloud/Sermant

官网地址:https://sermant.io

可观测性提升

新版本中,针对可观测性,建立了对Sermant运行状态及服务治理能力状态的监控机制,用户能够更直观,更清晰的看到Sermant进行服务治理的过程,可用于快速了解Sermant运行状态及当前已生效的服务治理能力,使服务治理有迹可循。

在新版本中,用户通过访问Backend,可在浏览器中直接看到Sermant运行状态,服务治理能力触发的事件以及Sermant服务运行期间产生的警告、错误等日志信息,特别的是,用户可以在Backend界面中配置钉钉和飞书webhook通知,当服务运行过程中有异常发生,能够第一时间将异常事件发送至相关人员知悉。

下图对可观测性进行展示,图中可清晰看出服务运行期间不同等级的事件数量,并且列出一段事件内的事件相关信息。

GOTC峰会Sermant发布1.1.0-beta版本,带来哪些提升?_服务治理

Backend模块还具有事件管理能力,以下图片展示了事件的部分搜索能力以及webhook通知能力。

(1)根据服务名查询事件的能力

GOTC峰会Sermant发布1.1.0-beta版本,带来哪些提升?_新版本_02

GOTC峰会Sermant发布1.1.0-beta版本,带来哪些提升?_服务治理_03

(2) 根据事件级别查询的能力

GOTC峰会Sermant发布1.1.0-beta版本,带来哪些提升?_服务治理_04


(3)webhook通知的能力

GOTC峰会Sermant发布1.1.0-beta版本,带来哪些提升?_服务治理_05


流量治理能力提升

系统规则流控和负载自适应流控

Sermant在上一版本中对流控能力有以下不足:

l 缺乏对服务器本身资源的规则配置

l 规则具有延迟性

针对上述不足,Sermant新版本中对流控能力做了提升,引入基于系统规则的流控能力以及基于负载的自适应流控能力。

系统规则流控是指对系统规则指标实时检测,当系统规则某一项指标超出阈值时,对流量进行控制,目前支持以下五种系统指标:

l 系统负载

l CPU使用率

l 平均响应时间

l 并发线程数

l QPS

负载自适应流控根据系统规则流控中的负载指标,增加了自适应的能力,自适应是指当前流量的控制需要根据系统过去一段时间内资源消耗情况进行判断,下图展示部分自适应流控能力的测试数据:

(1)下图展示了应用随着请求压力的增加,响应时间的变化曲线。可以看出,自适应流控可以显著提高并发下请求的响应时间。

GOTC峰会Sermant发布1.1.0-beta版本,带来哪些提升?_新版本_06


(2)下图展示了应用在固定请求压力下,系统负载资源的变化曲线。可以看出,自适应流控可以明显降低负载资源的损耗。

GOTC峰会Sermant发布1.1.0-beta版本,带来哪些提升?_新版本_07

路由规则模型统一和链路染色

以往版本中,路由能力存在基于不同内容匹配流量的规则数据格式不统一和路由能力不便于扩展的缺陷,所以新版本对路由规则配置能力提升,不同的路由能力采用同一套数据模型。

通过使用新版本的路由能力,用户可以基于同一套数据结构来适配不同的匹配规则,极大的简化了规则配置。

下图展示流量染色的过程:

当客户端client发起携带特征的请求调用应用App_1时,App_1携带的Sermant对符合路由规则的入口流量进行染色,即增加流量标记,根据请求特征进行分流后,进入后端的微服务应用,流量标记会随着请求调用一直传递下去。

链路染色即对请求流量进行颜色标记,并且将标记跟随着链路一直传递下去。结合流量路由与流量染色能力,可以实现全链路灰度、多环境隔离等场景。

GOTC峰会Sermant发布1.1.0-beta版本,带来哪些提升?_新版本_08

可用性治理能力提升

离群实例摘除

在服务调用过程中,为了解决下游实例异常导致业务不稳定,服务调用失败的问题,新版本增加了离群实力摘除能力,通过检测应用实例的可用性,当下游服务出现异常时,可以动态调整下游服务实例列表。

下图展示Sermant离群实例摘除能力:

当App_1的下游服务App_2,App_3,App_4的实例出现异常时,Sermant会将异常实例从下游实例例表中去除,保证服务能够调用成功。

GOTC峰会Sermant发布1.1.0-beta版本,带来哪些提升?_新版本_09


通过使用离群实例摘除服务治理能力,检测服务提供端的状态来动态调整服务消费端的实例发现,避免在运行过程中服务消费端因服务提供端状态异常而导致降低性能降低和可用性受损的状况,从而提升业务的稳定性和服务质量。

同可用区域优先调用

当应用部署在多个机房时,可能会出现跨机房互相调用的场景,这会导致网络时延增加。Sermant新版本提供了同可用区优先调用的能力,开启后,Consumer将优先调用同机房的Provider,降低网络时延。

下图展示同可用区域优先调用能力:

当应用App_1调用下游实例App_2时,App_2的下游实例分布在az1和az2,当App_2对下游发起调用时,az1和az2的下游都有可能被访问,当采用Sermant同az优先调用能力后,会优先调用az1的下游实例,保证调用低时延,提高用户体验。

GOTC峰会Sermant发布1.1.0-beta版本,带来哪些提升?_新版本_10


总结

本文主要介绍了Semrnat v1.1.0-beta版本为用户提供的新特性和优化点,帮助大家更清楚的了解新版本提供的能力,以及如何更好的使用这些能力。

未来Sermant还将提供不限于以下针对Sermant-agent的提升及更多基于JavaAgent的微服务治理能力:

l Sermant-agent将提供动态挂载的能力,这将为一些运维态服务接入服务治理能力带来便利。

l Sermant-agent将提供内部事件通知机制,让服务治理插件可以感知Sermant-agent及其他插件的状态,以做出动态调整。

l 在架构升级场景(使用Springboot注册插件)中支持Webflux客户端。

l 支持标签跨线程传递,在各类路由场景中可以在异步调用中传递标签。

结束语

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

开发者也可以加入到Sermant社区,参与相关功能的讨论和共建。

Sermant 官网:https://sermant.io

GitHub 仓库地址:https://github.com/huaweicloud/Sermant


标签:调用,服务,1.1,GOTC,App,能力,beta,版本,Sermant
From: https://blog.51cto.com/u_15950821/6493861

相关文章

  • mormot1.18 THttpApiServer
    mormot1.18THttpApiServer官方已经推荐使用mormot2,mormot1.18已经进入只修正bug的阶段。THttpApiServer是对windowshttp.sys通信的封装,因此只适用于windows。//cxg2023-2-12//mormot1.18http.sys适用于WINDOWS2003,XPSP2及以后版本unitsock.httpsys;interfaceus......
  • 最完美WIN11_Pro_22H2.22631.1835软件选装纯净版VIP50.1
    【系统简介】=============================================================1.本次更新母盘来自UUP_WIN11_PRO_22H2.22631.1835。进一步精简优化调整。2.只为呈现最好的作品,手工精简优化部分较多。3.OS版本号为22631.1835。个别要求高的就下MSDN吧,里面啥功能都有。4.集成《DrvCeo......
  • 操作系统(5.1.1)--常规存储管理方式的特征和局部性原理
    1.常规存储器管理方式的特征(1)一次性。即作业在运行前需一次性地全部装入内存。(2)驻留性。即作业装入内存后,便一直驻留在内存中,直至作业运行结束。由此可以看出,上述的一次性及驻留性,使许多在程序运行中不用或暂不用的程序(数据)占据了大量的内存空间,使得一些需要运行的作业无法装入......
  • Dapr v1.11 版本已发布
    Dapr是一套开源、可移植的事件驱动型运行时,允许开发人员轻松立足云端与边缘位置运行弹性、微服务、无状态以及有状态等应用程序类型。Dapr能够确保开发人员专注于编写业务逻辑,而不必分神于解决分布式系统难题,由此显著提高生产力并缩短开发时长。Dapr是用于构建云原生应用程序的开......
  • [ARM汇编]计算机原理与数制基础—1.1.3 二进制补码
    在计算机中,为了表示有符号整数(即正数和负数),通常采用二进制补码表示法。二进制补码不仅可以表示负数,还能简化计算机的加法和减法运算。接下来,我们将介绍二进制补码的概念及其计算方法。原码、反码和补码在讨论补码之前,我们先了解一下原码和反码的概念。原码:直接将一个有符号整......
  • [ARM汇编]计算机原理与数制基础—1.1.4 逻辑运算
    在计算机中,逻辑运算是对二进制数据进行操作的基础。逻辑运算主要包括以下几种:与(AND)、或(OR)、非(NOT)和异或(XOR)。接下来,我们将详细介绍这几种逻辑运算的原理及其应用。与(AND)运算与运算的规则如下:0AND0=00AND1=01AND0=01AND1=1两个二进制数进行与运算时,从最低......
  • [ARM汇编]计算机原理与数制基础—1.1.2 二进制与十进制数制转换
    在计算机中,我们通常使用二进制数制来表示数据,因为计算机的基本电平只有两种状态:高电平(通常表示为1)和低电平(通常表示为0)。而在我们的日常生活中,我们习惯使用十进制数制。为了方便理解,我们需要掌握二进制与十进制之间的转换方法。二进制转十进制将二进制数转换为十进制数时,我们......
  • Codeforces Beta Round #42 (Div. 2)-C. Lucky Tickets
    原题链接C.LuckyTicketstimelimitpertestmemorylimitpertestinputoutputVasyathinksthatluckyticketsaretheticketswhosenumbersaredivisibleby3.Hegathered......
  • Codeforces Beta Round #22 (Div. 2 Only)-B. Bargaining Table
    原题链接B.BargainingTabletimelimitpertestmemorylimitpertestinputoutputBobwantstoputanewbargainingtableinhisoffice.Todosohemeasuredtheofficeroo......
  • Codeforces Beta Round #22 (Div. 2 Only)-C. System Administrator
    原题链接C.SystemAdministratortimelimitpertestmemorylimitpertestinputoutputBobgotajobasasystemadministratorinXcorporation.Hisfirsttaskwastoconnec......