Sidecar 模式是 Istio 服务网格采用的模式,在服务网格出现之前该模式就一直存在,尤其是当微服务出现后开始盛行,本文讲解 Sidecar 模式。

什么是 Sidecar 模式

将应用程序的功能划分为单独的进程可以被视为 Sidecar 模式。Sidecar 设计模式允许你为应用程序添加许多功能,而无需额外第三方组件的配置和代码。

就如 Sidecar 连接着摩托车一样,类似地在软件架构中, Sidecar 应用是连接到父应用并且为其扩展或者增强功能。Sidecar 应用与主应用程序松散耦合。

让我用一个例子解释一下。想象一下假如你有6个微服务相互通信以确定一个包裹的成本。

每个微服务都需要具有可观察性、监控、日志记录、配置、断路器等功能。所有这些功能都是根据一些行业标准的第三方库在每个微服务中实现的。

但再想一想,这不是多余吗?它不会增加应用程序的整体复杂性吗?如果你的应用程序是用不同的语言编写时会发生什么——如何合并那些特定用于 .Net、Java、Python 等语言的第三方库。

使用 Sidecar 模式的优势

  • 通过抽象出与功能相关的共同基础设施到一个不同层降低了微服务代码的复杂度。
  • 因为你不再需要编写相同的第三方组件配置文件和代码,所以能够降低微服务架构中的代码重复度。
  • 降低应用程序代码和底层平台的耦合度。

Sidecar 模式如何工作

Sidecar 是容器应用模式的一种,也是在服务网格中发扬光大的一种模式,详见 Service Mesh 架构解析,其中详细描述了节点代理和 Sidecar 模式的服务网格架构。

使用 Sidecar 模式部署服务网格时,无需在节点上运行代理(因此您不需要基础结构的协作),但是集群中将运行多个相同的 Sidecar 副本。从另一个角度看:我可以为一组微服务部署到一个服务网格中,你也可以部署一个有特定实现的服务网格。在 Sidecar 部署方式中,你会为每个应用的容器部署一个伴生容器。Sidecar 接管进出应用容器的所有流量。在 Kubernetes 的 Pod 中,在原有的应用容器旁边运行一个 Sidecar 容器,可以理解为两个容器共享存储、网络等资源,可以广义的将这个注入了 Sidecar 容器的 Pod 理解为一台主机,两个容器共享主机资源。

Sidecar 模式相关推荐

  1. 分布式数据库DDM Sidecar模式负载均衡

    1 简介 分布式数据库中间件 DDM 分布式数据库中间件(Distributed Database Middleware)是解决数据库容量.性能瓶颈和分布式扩展问题的中间件服务,提供分库分表.读写分离 ...

  2. K8S 使用 SideCar 模式部署 Filebeat 收集容器日志

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  3. mysql中ddl和ddm_分布式数据库DDM Sidecar模式负载均衡

    1 简介 分布式数据库中间件 DDM 分布式数据库中间件(Distributed Database Middleware)是解决数据库容量.性能瓶颈和分布式扩展问题的中间件服务,提供分库分表.读写分离 ...

  4. Sidecar 模式的机制与应用

    什么是 Sidecar 模式 将应用程序的功能划分为单独的进程,即 Sidecar 模式.Sidecar 译为摩托车的边车,用到软件架构中,Sidecar 模式指在原来的业务逻辑上再新加一个抽象层. ...

  5. Sidecar模式初识

    Sidecar设计模式正在收到越来越多的关注和采用.作为Service Mesh的重要要素,Sidecar模式对于构建高度高度可伸缩.有弹性.安全且可便于监控的微服务架构系统至关重要.而Service ...

  6. Kubernetes日志采集Sidecar模式介绍

    摘要: DaemonSet和Sidecar模式各有优缺点,目前没有哪种方式可以适用于所有场景.因此我们阿里云日志服务同时支持了DaemonSet以及Sidecar两种方式,并对每种方式进行了一些额外的 ...

  7. 了解Sidecar模式

    本文介绍Sidecar模式的特点,及其应用的场景.熟悉Native Cloud或者微服务的童鞋应该知道,在云环境下,技术栈可以是多种多样的.那么如何能够将这些异构的服务组件串联起来,成为了服务治理的一 ...

  8. 重新认识Docker Compose之Sidecar模式

    什么是Docker Compose 在微服务盛行的今天,我们通常是这么定义Compose的:对容器的统一启动和关闭的编排工具. 但是我以前还是有个疑惑,谁会用Compose在一台服务器上部署多个服务呢 ...

  9. Kubernetes的Sidecar模式

    实践 apiVersion: v1 kind: Pod metadata:name: test-sidecar spec:volumes:- name: share-pathemptyDir: {}c ...

最新文章

  1. iOS绘制图片与文字
  2. 授权管理【学习笔记】《卓有成效的管理者》 第二章 掌握自己的时间
  3. 图解法求最优解的例题_【第四章 最优化理论】4.2 带约束最优化
  4. 如何获取并操作listview中的控件
  5. python爬虫scrapy步骤mac系统_python scrapy简单爬虫记录(实现简单爬取知乎)
  6. mysql 分表 sphinx_sphinx(coreseek)处理分表的方案
  7. android中 MediaStore提取缩略图和原始图像
  8. 不能在本地计算机启动 dtc,win10系统dTC服务无法启动的操作技巧
  9. 《Python游戏趣味编程》 第4章 疯狂的小圆圈
  10. 推荐 :写好一份数据分析报告13要点
  11. 闲置的eSATA接口,会影响Windows 7的启动速度
  12. 《多收了三五斗》大学毕业版 (转)
  13. 虚拟机服务器扩容,vmware虚拟机 ubuntu根目录磁盘扩容
  14. Android 自定义跑马灯文字
  15. python空气质量指数计算_Python入门案例(八):空气质量指数(AQI)计算
  16. Enhanced Assertions
  17. 基于高德POI搜索的地址类型判断
  18. 数学建模美赛历年资料(含题目翻译)和优秀论文
  19. C语言中sizeof用法
  20. 6-RabbitMQ实战

热门文章

  1. c++字符型变量和字符串型变量
  2. 表单验证插件:jQuery Validation Engine
  3. 前端发送请求到后端报400错误问题
  4. 2012_p3 摆花 (flower.cpp/c/pas)
  5. WPF的Style中的设置器Setter
  6. HTC将与联通合作推出沃Phone手机
  7. Mybatis常见的注解
  8. python新浪微博爬虫
  9. glimpse .net_如何在ASP.Net Core中使用Glimpse
  10. 在txt文件里写入九九乘法表