怎么理解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)

相关推荐

  • Java程序最容易犯的错误有哪些呢

    技术Java程序最容易犯的错误有哪些呢今天就跟大家聊聊有关Java程序最容易犯的错误有哪些呢,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  1.Duplicat

    攻略 2021年11月16日
  • Java世界常用的工具类库有哪些

    技术Java世界常用的工具类库有哪些小编给大家分享一下Java世界常用的工具类库有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Apach

    攻略 2021年12月9日
  • 湿毒的症状图片,怎样知道身体湿气排出去了

    技术湿毒的症状图片,怎样知道身体湿气排出去了感谢邀请。一湿难去。当我们身体存心湿气的时候是很难祛除的湿毒的症状图片,因为这个湿气就像油一样,黏性非常大。而且这个湿气可以说是万病之源,它与寒在一起就容易形成寒湿;它与热在一

    生活 2021年10月25日
  • 有哪些Java GC的相关问题

    技术有哪些Java GC的相关问题这篇文章主要介绍“有哪些Java GC的相关问题”,在日常操作中,相信很多人在有哪些Java GC的相关问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年11月2日
  • Linux下oracle11g在安装grid时密码框中不能输入任何信息怎么办

    技术Linux下oracle11g在安装grid时密码框中不能输入任何信息怎么办小编给大家分享一下Linux下oracle11g在安装grid时密码框中不能输入任何信息怎么办,相信大部分人都还不怎么了解,因此分享这篇文章

    攻略 2021年11月10日
  • 互联网中如何设置禁止百度移动搜索对网页进行转码

    技术互联网中如何设置禁止百度移动搜索对网页进行转码这篇文章主要为大家展示了“互联网中如何设置禁止百度移动搜索对网页进行转码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“互联网

    攻略 2021年11月21日