怎么理解Service Mesh

技术怎么理解Service Mesh这篇文章主要讲解了“怎么理解Service Mesh”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Service Mesh”吧

本文主要讲解“如何理解服务网格”。本文的解释简单明了,易学易懂。请跟随边肖的思路,一起学习学习《如何理解服务网格》!

时代0:开发人员想象中,不同服务间通信的方式

抽象如下:

怎么理解Service  Mesh

时代1:原始通信时代

然而,现实远比想象的复杂。实际上,通信需要底层能够传输字节码和电子信号的物理层。在TCP协议出现之前,服务需要处理网络通信面临的一系列流量控制问题,如丢包、乱序、重试等。因此,在服务实现中,除了业务逻辑之外,还混合了网络传输问题的处理逻辑。

怎么理解Service  Mesh

时代2:TCP时代

为了避免每个服务都需要自己实现一套相似的网络传输处理逻辑,出现了TCP协议,解决了网络传输中的一般流量控制问题,下移技术栈,将其与服务实现分离,成为操作系统网络层的一部分。

怎么理解Service  Mesh

第三代:第一代微服务

TCP出现后,机器之间的网络通信不再是难题,以GFS/BigTable/MapReduce为代表的分布式系统蓬勃发展。此时,分布式系统特有的通信语义再次出现,如融合策略、负载均衡、服务发现、认证授权、配额限制、跟踪监控等。因此,服务可以根据业务需求实现一些所需的通信语义。

怎么理解Service  Mesh

时代4:第二代微服务

为了避免每个服务都需要自己实现一套分布式系统通信的语义功能,随着技术的发展,出现了一些面向微服务架构的开发框架,如Twitter的Finagle、脸书的Proxygen、Spring Cloud等。这些框架实现了分布式系统通信所需的各种通用语义功能,如负载均衡和服务发现等。从而在一定程度上屏蔽了这些通信细节,使开发人员能够用更少的框架代码开发健壮的分布式系统。

怎么理解Service  Mesh

时代5:第一代Service Mesh

第二代微服务模型看似完美,但开发人员很快发现它也有一些本质问题:

首先,虽然框架本身屏蔽了分布式系统通信的一些通用功能实现细节,但是开发人员要花费更多的精力去掌握和管理复杂的框架本身。在实际应用中,跟踪和解决框架中的问题并不容易。

其次,开发框架通常只支持一种或几种特定的语言。回顾文章开头对微服务的定义,一个重要的特点就是语言独立性,但是那些用没有框架支持的语言编写的服务很难集成到面向微服务的架构体系中,也很难根据本地情况用多种语言实现架构体系中的不同模块。

第三,框架以lib库的形式与服务捆绑在一起,复杂项目依赖时库版本的兼容性非常困难。同时,框架库的升级不能对服务透明,服务会因为与业务无关的lib库升级而被迫升级。

于是,以Linkerd、特使、Ngixmesh为代表的代理模式(sidecar模式)应运而生。这是第一代的Service Mesh,将分布式服务的通信抽象为单一层,在该层实现分布式系统所需的负载均衡、服务发现、认证授权、监控跟踪、流量控制等功能。作为等同于服务的代理服务,它与服务一起部署,以接管服务流

怎么理解Service  Mesh

如果我们从全局的角度来看,我们将得到下面的部署图:

h">

如果我们暂时略去服务,只看Service Mesh的单机组件组成的网络:

怎么理解Service Mesh

相信现在,大家已经理解何所谓Service Mesh,也就是服务网格了。它看起来确实就像是一个由若干服务代理所组成的错综复杂的网格。

时代6:第二代Service Mesh

第一代Service Mesh由一系列独立运行的单机代理服务构成,为了提供统一的上层运维入口,演化出了集中式的控制面板,所有的单机代理组件通过和控制面板交互进行网络拓扑策略的更新和单机数据的汇报。这就是以Istio为代表的第二代Service Mesh。

怎么理解Service Mesh

只看单机代理组件(数据面板)和控制面板的Service Mesh全局部署视图如下:

怎么理解Service Mesh

至此,见证了6个时代的变迁,大家一定清楚了Service Mesh技术到底是什么,以及是如何一步步演化到今天这样一个形态。

现在,我们再回过头来看Buoyant的CEO William Morgan,也就是Service Mesh这个词的发明人,对Service Mesh的定义:

服务网格是一个基础设施层,用于处理服务间通信。云原生应用有着复杂的服务拓扑,服务网格保证请求在这些拓扑中可靠地穿梭。在实际应用当中,服务网格通常是由一系列轻量级的网络代理组成的,它们与应用程序部署在一起,但对应用程序透明。

这个定义中,有四个关键词:

  •  基础设施层+请求在这些拓扑中可靠穿梭:这两个词加起来描述了Service Mesh的定位和功能,是不是似曾相识?没错,你一定想到了TCP;

  •  网络代理:这描述了Service Mesh的实现形态;

  •  对应用透明:这描述了Service Mesh的关键特点,正是由于这个特点,Service Mesh能够解决以Spring Cloud为代表的第二代微服务框架所面临的三个本质问题。

感谢各位的阅读,以上就是“怎么理解Service Mesh”的内容了,经过本文的学习后,相信大家对怎么理解Service Mesh这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/91876.html

(0)

相关推荐

  • 如何解决vue不是内部或外部命令的问题

    技术如何解决vue不是内部或外部命令的问题小编给大家分享一下如何解决vue不是内部或外部命令的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧

    攻略 2021年10月27日
  • Python GUI中怎么使用Qt设计师进行窗口布局

    技术Python GUI中怎么使用Qt设计师进行窗口布局这篇文章主要讲解了“Python GUI中怎么使用Qt设计师进行窗口布局”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学

    攻略 2021年11月29日
  • 怎么把照片缩小到10k,照片怎么改成10K左右大小

    技术怎么把照片缩小到10k,照片怎么改成10K左右大小把照片改成10K左右大小可以用美图秀秀修改怎么把照片缩小到10k,操作方法如下: 1、打开常用的浏览器,在浏览器搜索栏上输入“美图秀秀”,选着美图秀秀的官方链接。 2

    生活 2021年10月21日
  • 如何理解UML时序图

    技术如何理解UML时序图如何理解UML时序图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。UML时序图简介时序图(SequenceDiagram)是强调

    攻略 2021年11月23日
  • ram架构和ram存储(嵌入式ram)

    技术如何进行嵌入式中常用内存RAM浅析本篇文章给大家分享的是有关如何进行嵌入式中常用内存RAM浅析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.说明随着

    攻略 2021年12月18日
  • 三个向造句,用“向”“向”“向”三个词造句

    技术三个向造句,用“向”“向”“向”三个词造句在大会上我们向英雄致敬,向英雄献花,还宣誓要向英雄学习三个向造句。花儿向太阳微笑,向风儿点头,向蜜蜂问好。我向小猫学喵喵叫,向袋鼠学跳跃,向猴子学爬树。向前、向前,向前,我们

    生活 2021年10月21日