服务网格不会为应用程序的运行时环境引入新功能,任何体系结构中的应用程序都需要规则来指定请求如何从A点到达B点。服务网格的不同之处在于,它将管理服务到服务通信的逻辑从单个服务中提取出来,并将其抽象到基础设施层。
为此,将服务网格作为网络代理阵列内置到应用程序中。代理是企业IT中常见的概念-如果您是从工作计算机访问此网页,很可能您只是使用了一个:
- 当你对这个页面的请求发出时,它首先被你公司的网络代理收到…
- 在通过代理的安全措施后,它被发送到承载此页面的服务器…
- 接下来,此页面被返回给代理,并再次检查其安全措施…
- 然后,它最终从代理发送给您。
在服务网格中,请求通过微服务自身基础结构层中的代理在微服务之间路由。因此,组成服务网格的单个代理有时被称为“sidecars”,因为它们运行沿着每个服务,而不是在内部他们。这些“sidecar”代理从每个服务中分离出来,形成一个网状网络。
sidecar代理位于微服务旁边,将请求路由到其他代理。这些侧车一起形成了网状网络。
如果没有服务网格,每个微服务都需要用逻辑进行编码,以管理服务到服务的通信,这意味着开发人员不太关注业务目标。这还意味着通信故障更难诊断,因为管理服务间通信的逻辑隐藏在每个服务中。