边车模式的介绍

简介: 边车模式的介绍

边车模式也叫搭档模式。


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


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


很多系统是用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.把控制和逻辑分离,标准化控制面上的动作和技术,从而提高系统整体的稳定性和可用性。也有利于分工。


相关文章
|
4天前
|
设计模式 算法 编译器
【C/C++ PIMPL模式 】 深入探索C++中的PIMPL模式
【C/C++ PIMPL模式 】 深入探索C++中的PIMPL模式
58 0
|
4天前
一般模式
【2月更文挑战第20天】一般模式。
11 1
|
前端开发 JavaScript Java
MVX模式是什么?
MVX模式是什么?
230 0
|
分布式计算 自然语言处理 并行计算
运用Aggregator模式实现MapReduc
运用Aggregator模式实现MapReduc
运用Aggregator模式实现MapReduc
|
C语言
模式
模式
116 0
|
前端开发 JavaScript 编译器
模式二之框架模式
模式二之框架模式
|
并行计算 搜索推荐 算法