边车模式的介绍

简介: 边车模式的介绍

边车模式也叫搭档模式。


边车模式的设计思想是将控制和逻辑分离,常用于分布式架构中的逻辑和控制分离设计。边车来实现这些与业务逻辑没有关系的控制功能。


以边车的方式,对应用服务没有侵入性,并且不用受到应用服务的语言与技术的限制,可以做到控制和逻辑的分开升级和部署。


很多系统是用C语言写的,因为没有分布式系统,所以边车的方式就可以进行低风险改造。

一、边车的注意事项


边车模式着重需要关注控制和逻辑的分离、服务调用中上下文的问题。


1、进程间通讯机制是这个设计模式的重点,千万不要使用任何对应用服务有侵入的方式


2、服务协议方面,也请使用标准统一的方式。这里有两层协议,一个是 Sidecar 到 service 的内部协议,另一个是 Sidecar 到远端 Sidecar 或 service 的外部协议。对于内部协议,需要尽量靠近和兼容本地 service 的协议;对于外部协议,需要尽量使用更为开放更为标准的协议。但无论是哪种,都不应该使用与语言相关的协议


3、使用这样的模式,需要在服务的整体打包、构建、部署、管控、运维上设计好。使用 Docker 容器方面的技术可以帮助你全面降低复杂度


4、Sidecar 中所实现的功能应该是控制面上的东西,而不是业务逻辑上的东西,所以请尽量不要把业务逻辑设计到 Sidecar 中


5、小心在 Sidecar 中包含通用功能可能带来的影响。例如,重试操作,这可能不安全,除非所有操作都是幂等的。


6、另外,我们还要考虑允许应用服务和 Sidecar 的上下文传递的机制。 例如,包含 HTTP 请求标头以选择退出重试,或指定最大重试次数等等这样的信息交互。或是 Sidecar 告诉应用服务限流发生,或是远程服务不可用等信息,这样可以让应用服务和 Sidecar 配合得更好


二、边车模式使用场景


1.对老应用系统的改造和扩展


2.对多种语言混合出来的分布式服务系统进行管理和扩展


3.应用服务由不同的供应商提供


4.把控制和逻辑分离,标准化控制面上的动作和技术,从而提高系统整体的稳定性和可用性。也有利于分工。


相关文章
|
关系型数据库 MySQL
Mysql连接无效(invalid connection)解决方案
Mysql连接无效(invalid connection)解决方案
1757 0
Mysql连接无效(invalid connection)解决方案
|
前端开发
CSS新增样式----圆角边框、盒子阴影、文字阴影
CSS新增样式----圆角边框、盒子阴影、文字阴影
279 0
解决Mybatis-Plus更新对象时为法将某字段更新为空值的问题
解决Mybatis-Plus更新对象时为法将某字段更新为空值的问题
解决Mybatis-Plus更新对象时为法将某字段更新为空值的问题
|
1月前
|
存储 Ubuntu Linux
安卓手机免root安装各种Linux系统:Ubuntu, Centos,Kali等
此外还可以安装Slackware、Archstrike等系统,还可以通过github查找方法安装更多有趣的东西。 昨日小编就是通过Termux安装的Kali Linux工具包。
|
12月前
|
存储 算法 测试技术
面向对象测试和传统测试的区别
面向对象测试和传统测试的区别
275 10
|
JavaScript 测试技术 API
Vue 3 与 TypeScript:最佳实践详解
Vue 3 与 TypeScript:最佳实践详解
|
前端开发 Java 关系型数据库
基于Springboot实现图书管理系统
基于Springboot实现图书管理系统
288 1
|
Prometheus Kubernetes 监控
Kubernetes APIServer 内存爆满分析
董江,容器技术布道者及实践者,中国移动高级系统架构专家,曾担任华为云核心网技术专家,CloudNative社区核心成员,KubeServiceStack社区发起者,Prometheus社区PMC,Knative Committer,Grafana社区Contributer。 欢迎关注:https://kubeservice.cn/
Kubernetes APIServer 内存爆满分析
|
Shell 开发工具 git
TortoiseGit安装教程
TortoiseGit安装教程
362 0