Service Mesh的定义:
服务网格是一个基础设施层,用于处理服务间通信。云原生应用有着复杂的服务拓扑,服务网格保证请求在这些拓扑中可靠地穿梭。在实际应用当中,服务网格通常是由一系列轻量级的网络代理组成的,它们与应用程序部署在一起,但对应用程序透明。
Service Mesh 将底层那些难以控制的网络通讯统一管理,诸如:流量管控,丢包重试,访问控制等。而上层的应用层协议只需关心业务逻辑即可。Service Mesh 是一个用于处理服务间通信的基础设施层,它负责为构建复杂的云原生应用传递可靠的网络请求。
Service Mesh 有如下几个特点:
-
应用程序间通讯的中间层
-
轻量级网络代理
-
应用程序无感知
-
解耦应用程序的重试/超时、监控、追踪和服务发现
服务网格是一个专用的基础设施层,它的目标是 “在微服务架构中实现可靠、快速和安全的服务间调用”。 它不是一个“服务的网格”,而是一个服务可以插入其中的“代理的网格”,以实现网络的完全抽象化。在典型的服务网格中,这些代理作为sidecar(边车)注入到每个服务部署中。服务不直接通过网络调用服务,而是调用它们的本地sidecar代理,后者代表服务管理请求,从而封装了服务间调用的复杂性。相互连接的sidecar代理实现了所谓的“数据平面”。这与用于配置代理和收集指标的服务网格组件形成对比,这些组件称为服务网格控制平面。
Sidecar 的设计就是为了解决微服务互相调用(东西流量)的问题