美文网首页
Sidecar 模式

Sidecar 模式

作者: quanCN | 来源:发表于2020-12-08 20:44 被阅读0次

    什么是 Sidecar 模式

    将应用程序的组件部署到单独的进程或容器中以提供隔离和封装,这种模式被视为Sidecar模式。
    Sidecar设计模式允许你为应用程序添加许多功能,而无需额外第三方组件的配置和代码。Sidecar还与父应用程序共享相同的生命周期,并与父应用程序一起创建和退出。
    微服务生态系统中的Sidecar设计模式
    sidecar

    :Sidecar:(摩托车的)跨斗,边车


    Sidecar服务不一定是应用程序的一部分,而是与之相关联。它适用于父应用程序的任何位置,与父应用完全松耦合。Sidecar支持与主应用程序一起部署的进程或服务。这就像是如图所示的边三轮摩托车那样,将边车安装在一辆摩托车上,就变成了边三轮摩托车。每辆边三轮摩托车都有自己的边车。类似同样的方式,边车服务共享其父应用程序的主机。对于应用程序的每个实例,边车的实例被部署并与其一起托管。

    使用Sidecar模式的优势

    • 抽象出与功能相关的共同基础设施到一个不同层,降低了微服务代码的复杂度
    • 辅助工具在运行时环境和编程语言方面与其主应用程序无关,因此无需为每种语言开发一个辅助工具
    • Sidecar靠近主应用程序,因此它们之间的通信没有明显的延迟
    • 边车可以访问与主应用程序相同的资源

    :Sidecar模式通常与容器一起使用,称为Sidecar容器

    使用场景

    • 主应用程序使用不同种类的语言和框架。位于sidecar服务中的组件可由使用不同框架以不同语言编写的应用程序使用
    • 组件由远程团队或其他组织拥有
    • 组件或功能必须与应用程序位于同一主机上
    • 需要与主应用程序共享整个生命周期但可以独立更新的服务
    • 需要对特定资源或组件的资源限制进行细粒度的控制。例如,您可能想限制特定组件使用的内存量。您可以将组件部署为辅助工具,并独立于主应用程序管理内存使用情况

    Sidecar模式工作流程

    Sidecar是容器应用模式的一种,也是在Service Mesh中发扬光大的一种模式,服务网格层可以存在于与应用程序一起运行的Sidecar容器中。每个应用程序旁边都附有相同Sidecar的副本。

    来自单个服务的所有传入和传出网络流量都流经Sidecar代理。 因此,Sidecar能够管理微服务之间的流量,收集遥测数据并实施相关策略。从某种意义上说,该服务不了解整个网络,只知道附加的Sidecar代理。这实际上就是Sidecar模式如何工作的本质——将网络依赖性抽象为 Sidecar


    在服务网格中有数据平面和控制平面的概念:
    • 数据平面
      数据平面的职责是处理网格内部服务之间的通信,并负责服务发现、负载均衡、流量管理、健康检查等功能
    • 控制平面
      控制平面的职责是管理和配置 Sidecar 代理以实施策略并收集遥测

    相关文章

      网友评论

          本文标题:Sidecar 模式

          本文链接:https://www.haomeiwen.com/subject/sdiqgktx.html