谈谈 Service Mesh 中的 Sidecar 模式

Posted Node地下铁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谈谈 Service Mesh 中的 Sidecar 模式相关的知识,希望对你有一定的参考价值。

Service Mesh(服务网格) 是当下的一个热词。特别是 Google/IBM/Lyft 联手推出的 istio,集服务发现,流量管理,策略执行,监控追踪能力于一身,堪称 Service Mesh 解决方案中的翘楚。


提到 Service Mesh 的时候,经常也会提到另一个词: Sidecar。什么是 Sidecar 呢?


Sidecar 是一种模式,中文叫做挎斗模式(指得是挎斗摩托车的那个挎斗)。是指将应用程序的部分组件部署到单独的进程或者容器中,以提供隔离和封装,Sidecar 和应用程序具有相同的生命周期,和应用同时创建消亡。


下图描述的是一个没有使用 Sidecar 模式的应用。


类似服务发现和调用断路器和应用运行在相同的进程内,好处是可以有效的共享资源,但由于耦合在一起缺少隔离,业务无关的模块可能会影响业务模块,此外,这种耦合会要求业务模块和通用服务模块都使用相同的编程语言来实现。


应用 Sidecar 模式则是把部分的能力拆分到一个独立的进程或者容器中运行。我们常见的在 Node.js 应用服务前面放一个 nginx 反向代理是 Sidecar 模式的一种实践。



Sidecar 模式通常和容器一起组合使用。



微软的这篇文章完整介绍了 Sidecar 模式的背景和要解决的问题,以及它的优势和劣势,并列举了适合使用的场景,欢迎点击原文了解。


以上是关于谈谈 Service Mesh 中的 Sidecar 模式的主要内容,如果未能解决你的问题,请参考以下文章

Service Mesh——微服务中的流量管理中间件

必读!Istio Service Mesh中的策略与遥测概念详解

直播预告:Apache SkyWalking 在 Service Mesh 中的可观察性应用

了解 Linkerd Service Mesh 架构

云原生核心技术之:Service Mesh(服务网格)

Service Mesh 的由来