Sidecar模式

什么是Sidecar
  • sidecar模式是Istio服务网格采用的模式
  • sidecar翻译为"偏三","翻斗",就是摩托车另外添加了一个容器似的,组成了翻斗摩托车.
  • 该模式其实一直存在,但是在微服务出现后开始盛行
  • 将应用程序的功能划分为单独进程的可以被视为sidecar模式.
  • sidecar允许你为应用程序添加许多功能,而无须额外第三方组件的配置和代码
  • 在软件架构中,sidecar应用是连接到父应用并且为其扩展功增强功能,且与主应用程序松散耦合
  • 举例:(引用自 www.servicemesh.com)假如有6个微服务相互通信以确定一个包裹的成本.然后这6个微服务每个都需要具有可观察性,监控,日志记录,配置,断路器等功能,而且这6个还具有不止一个进程,作为冗余至少2台.所有这些功能都是根据一些行业标准的第三方库在每个微服务中实现的
  • 上述的这些可观察性,监控,日志记录,配置,熔断,降级等分别编码在这些微服务中,耦合了业务逻辑和这些相同的功能.特别是你的应用程序是用不同的语言编写时会发生什么.比如Golang,Golang有没有这些第三方的可观察性,监控,日志记录,配置,熔断,降级等产品可用呢?仅以Golang举例
使用sidecar模式的优势
  • 通过抽象出与功能相关的共同基础设施至一个不同层降低了微服务代码的复杂度
  • 分离了应用程序代码和底层平台的耦合
  • 在微服务开发中,将这些功能相同的组件抽象出来,能够降低微服务架构中代码的重复度

本文内容参考www.servicemesh.com 网站.