边车模式的介绍

简介: 边车模式的介绍

边车模式也叫搭档模式。


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


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


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


相关文章
|
网络协议 算法 网络安全
EVE-NG:一种强大的网络模拟器和实验平台
随着网络技术的飞速发展,网络安全和网络性能问题越来越受到人们的关注。在这个领域,EVE-NG是一种广受欢迎的网络模拟器和实验平台。
|
关系型数据库 MySQL
Mysql连接无效(invalid connection)解决方案
Mysql连接无效(invalid connection)解决方案
1961 0
Mysql连接无效(invalid connection)解决方案
|
JavaScript Shell 程序员
Electron如何调用.exe文件并传递参数
Electron如何调用.exe文件并传递参数
1649 0
Electron如何调用.exe文件并传递参数
|
3月前
|
数据采集 缓存 自然语言处理
闲鱼 item_search - 关键字商品搜索接口对接全攻略:从入门到精通
闲鱼item_search接口是检索二手商品的核心API,支持多维度筛选与分页返回商品基础信息,需HMAC-SHA256签名认证,权限分级且风控严格。本文提供从权限申请、签名生成、Python对接到调试优化的全链路指南,适用于比价、运营分析等场景。
|
3月前
|
机器学习/深度学习
📍 位置编码详解
位置编码为Transformer提供序列位置信息,因注意力机制无位置感知。分为绝对(如可学习、Sinusoidal)和相对(如RoPE、ALiBi)两类。RoPE通过旋转矩阵支持任意长度,ALiBi以线性偏置增强外推。面试常考其必要性、RoPE优势及长序列处理。
|
8月前
|
机器学习/深度学习 人工智能 PyTorch
零基础入门CNN:聚AI卷积神经网络核心原理与工业级实战指南
卷积神经网络(CNN)通过局部感知和权值共享两大特性,成为计算机视觉的核心技术。本文详解CNN的卷积操作、架构设计、超参数调优及感受野计算,结合代码示例展示其在图像分类、目标检测等领域的应用价值。
488 7
|
10月前
|
XML Java 数据格式
Spring IoC容器的设计与实现
Spring 是一个功能强大且模块化的 Java 开发框架,其核心架构围绕 IoC 容器、AOP、数据访问与集成、Web 层支持等展开。其中,`BeanFactory` 和 `ApplicationContext` 是 Spring 容器的核心组件,分别定位为基础容器和高级容器,前者提供轻量级的 Bean 管理,后者扩展了事件发布、国际化等功能。
282 18
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
33936 1
|
前端开发 JavaScript
html中id和class的相同和不同之处及用法的规范与区别
在HTML中,`id`和`class`都用于标识和选择元素,但存在一些关键差异。
|
JavaScript 测试技术 API
Vue 3 与 TypeScript:最佳实践详解
Vue 3 与 TypeScript:最佳实践详解

热门文章

最新文章