大茂名网

 找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 208|回复: 0

[【编导】] 新闻转载一文读懂Service Mesh:边车模式简介2022/12/26 14:03:49

[复制链接]

2万

主题

2万

帖子

9万

积分

钻石元老

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
98065
发表于 2022-12-26 14:03 | 显示全部楼层 |阅读模式

马上注册登陆,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?用户注册

x

早期的很多系统都是单体服务的,就是把所有组件都塞在一个应用内,但是随着软件复杂性和并发用户数的急剧增加,单体应用论是从开发效率和运维管理方面都已经不能适应时代的发展了。自从2022年SM(服务格)的概念被提出以来,短短几年时间就受到了广大程序员们的热烈欢迎为什么SM这么容易被接受呢原因很简单,那就是它切中了早期微服务架构的痛点。从而极大地解放了生产力。要理解它是如何解决了程序员们的生产力的,我们先从早期微服务框架的痛点开始说起。ip域名查询网的相关知识也可以到网站具体了解一下,有专业的客服人员为您全面解读,相信会有一个好的合作!


一、微服务架构的产生与问题早期的很多系统都是单体服务的,就是把所有组件都塞在一个应用内,但是随着软件复杂性和并发用户数的急剧增加,单体应用论是从开发效率和运维管理方面都已经不能适应时代的发展了。于是把各种服务单独出来,每个服务只关注自己的业务领域,与其它服务松耦合的微服务就应运而生了。



微服务架构具有以下几个点:

1、单?职责:拆分后的单个微服务,通常只负责单个高内聚自闭环功能,因此很易于开发、理解和维护。

2、架构灵活:不同微服务应用之间在技术选型层面几乎是单独的,可以?由选择比较适合的技术栈。

3、部署隔离:相比巨霸单体应用,单个微服务应用的代码和产物体积大大减少,更容易持续集成和速部署;同时,通过进程级别的隔离,也不再像单体应用一样只能同生共死,故障隔离效果显著提升。

4、独?扩展:单体应用时代,某个模块如果存在资源瓶颈(CPU内存),只能跟随整个应用一起扩容,白白浪费很多资源。微服务化后,扩展的粒度细化到了微服务级别,可以更精确地按需单独扩展。

但是,微服务带来很多点的时候,也出现了很多新的问题,比较大的问题,就在于服务间通信的问题,具体来讲,就是如下几个问题:

如何找到服务的提供?如何保证远程调?的可靠性?如何降低服务调?的延迟如何保证服务调?的安全性

于是,为了解决这些问题,微服务技术特有的通信语义就出现了,如熔断策略、负载均衡、服务发现、认证和授权、限制、和监控等等,服务根据业务需求来现一部分所需的通信语义。

但是,这样做的问题也非常明显,那就是,在这个过程中,开发人员需要花费大量的时间去编写与业务功能关的代码。虽然框架本身屏蔽了分布式系统通信的一些通用功能现细节,但开发者却要花更多精力去掌握和管理复杂的框架本身,在际应用中,去追踪和解决框架出现的问题也绝非易事。

另外,开发框架通常只支持一种或几种特定的语言,没有框架支持的语言编写的服务,很难融入面向微服务的架构体系,想因地制宜地用多种语言现架构体系中的不同模块也很难做到。同时框架以库的形式和服务联编,复杂项目依赖时的库版本兼容问题非常棘手框架库的升级也法对服务透明,服务会因为和业务关的库升级而被迫升级。

于是,为了解决这些问题,SM诞生了。



二、SM:微服务时代的TCPIP协议SM的诞生,就是为了将微服务时代的通信语义剥离出来,从而使得微服务本身更加关注业务逻辑,它为每个微服务提供了一个代理,而这个代理如同TCPIP协议一样,把微服务时代所需要的通信语义放在一个层面完成,从而使得业务开发者们从繁重的工作中解放出来。而这个代理,就是大鼎鼎的S(边车)模式了。

S原意是指从二战时开始被广泛使用起来的挎斗摩托车。这个字也是一种著的饰以红樱桃的混合鸡尾酒,同时也指在人以上多人运动中,在旁边处于辅助地位或者拍摄的人。

在SM中,监视、日志、限流、熔断、服务注册、协议转换、冪等……"这些功能,其都是大同小异,是完全可以做成标准化的组件和模块的。在这种情况下,边车就像一个微服务的A,这个服务所有对外的进出通讯都通过这个A来完成。这样,我们就可以在这个A上做很多文章了。

这样,所有的微服务通过S连接起来之后,就像一个格一样,这也是SM称的由来。



那么,S具体的作用是什么呢我们以SM概念的提出者B出品的L为例,来解析一下边车模式的服务流程。在L里面,一个服务请求的处理流程包括以下几个部分:



1、动态路由:根据上游服务请求参数,确定下游目标服务;除了常规的服务路由策略,L还可以通过这一层动态路由能力,支持灰度发布、AB测试、环境隔离等非常有价值的场景。

2、服务发现:确定目标服务后,下一步就是获取对应的例的地址列表(查询)。

3、负载均衡:如果列表中有多个地址,L会通过负载均衡算法(LL、PEWMA)选择其中?个合适的低延迟例。

4、执行请求:发送请求到上一步所选择的例,并记录延迟和响应结果。

5、重试处理:如果请求未响应,则选择另?个例重试(前提:L知道该请求是幂等的)。

6、熔断处理:如果发往某个例的请求经常失败,则主动从地址列表中剔除该例。

7、超时处理:如果请求超期(在给定的时间点之前仍未返回),则主动返回失败响应。

8、可观测性:L会持续收集和上报上述各种行为数据,包括M和T。

而这些服务,就类似于TCP服务提供的络传输处理逻辑了,类似于TCP服务解决了络传输中通用的流量控制问题,将技术栈下移,从服务的现中抽离出来,成为操作系统络层的一部分一样,SM也将微服务间通信所需要的通用功能剥离出来,将技术栈单独抽出一层,从而成为分布式系统的一部分。

、主流SM现目前主流的SM现包括L、E、I、C等。
爱上大茂名,喜当大猫友,吃喝玩乐事,天天乐开怀!
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

QQ|客服:0668-2886677QQ:75281068|大茂微博|小黑屋|手机版|Archiver|大茂名网 ( 粤ICP备18149867号 )茂名市大茂科技有限公司 版权所有 

GMT+8, 2024-11-29 17:23 , Processed in 0.068253 second(s), 8 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表