左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家,骨灰级程序员
立即订阅
40357 人已学习
课程目录
已完结 108 讲
0/6登录后,你可以任选6讲全文学习。
开篇词 | 洞悉技术的本质,享受科技的乐趣
免费
01 | 程序员如何用技术变现(上)
02 | 程序员如何用技术变现(下)
03 | Equifax信息泄露始末
04 | 从Equifax信息泄露看数据安全
05 | 何为技术领导力?
06 | 如何才能拥有技术领导力?
07 | 推荐阅读:每个程序员都该知道的知识
08 | Go语言,Docker和新技术
09 | 答疑解惑:渴望、热情和选择
10 | 如何成为一个大家愿意追随的Leader?
11 | 程序中的错误处理:错误返回码和异常捕捉
12 | 程序中的错误处理:异步编程以及我的最佳实践
13 | 魔数 0x5f3759df
14 | 推荐阅读:机器学习101
15 | 时间管理:同扭曲时间的事儿抗争
16 | 时间管理:如何利用好自己的时间?
17 | 故障处理最佳实践:应对故障
18 | 故障处理最佳实践:故障改进
19 | 答疑解惑:我们应该能够识别的表象和本质
20 | Git协同工作流,你该怎么选?
21 | 分布式系统架构的冰与火
22 | 从亚马逊的实践,谈分布式系统的难点
23 | 分布式系统的技术栈
24 | 分布式系统关键技术:全栈监控
25 | 分布式系统关键技术:服务调度
26 | 分布式系统关键技术:流量与数据调度
27 | 洞悉PaaS平台的本质
28 | 推荐阅读:分布式系统架构经典资料
29 | 推荐阅读:分布式数据调度相关论文
30 | 编程范式游记(1)- 起源
31 | 编程范式游记(2)- 泛型编程
32 | 编程范式游记(3) - 类型系统和泛型的本质
33 | 编程范式游记(4)- 函数式编程
34 | 编程范式游记(5)- 修饰器模式
35 | 编程范式游记(6)- 面向对象编程
36 | 编程范式游记(7)- 基于原型的编程范式
37 | 编程范式游记(8)- Go 语言的委托模式
38 | 编程范式游记(9)- 编程的本质
39 | 编程范式游记(10)- 逻辑编程范式
40 | 编程范式游记(11)- 程序世界里的编程范式
41 | 弹力设计篇之“认识故障和弹力设计”
42 | 弹力设计篇之“隔离设计”
43 | 弹力设计篇之“异步通讯设计”
44 | 弹力设计篇之“幂等性设计”
45 | 弹力设计篇之“服务的状态”
46 | 弹力设计篇之“补偿事务”
47 | 弹力设计篇之“重试设计”
48 | 弹力设计篇之“熔断设计”
49 | 弹力设计篇之“限流设计”
50 | 弹力设计篇之“降级设计”
51 | 弹力设计篇之“弹力设计总结”
52 | 管理设计篇之“分布式锁”
53 | 管理设计篇之“配置中心”
54 | 管理设计篇之“边车模式”
55 | 管理设计篇之“服务网格”
56 | 管理设计篇之“网关模式”
57 | 管理设计篇之“部署升级策略”
58 | 性能设计篇之“缓存”
59 | 性能设计篇之“异步处理”
60 | 性能设计篇之“数据库扩展”
61 | 性能设计篇之“秒杀”
62 | 性能设计篇之“边缘计算”
63 | 区块链技术的本质
64 | 区块链技术细节:哈希算法
65 | 区块链技术细节:加密和挖矿
66 | 区块链技术细节:去中心化的共识机制
67 | 区块链技术细节:智能合约
68 | 区块链技术 - 传统金融和虚拟货币
69 | 程序员练级攻略:开篇词
70 | 程序员练级攻略:零基础启蒙
71 | 程序员练级攻略:正式入门
72 | 程序员练级攻略:程序员修养
73 | 程序员练级攻略:编程语言
74 | 程序员练级攻略:理论学科
75 | 程序员练级攻略:系统知识
76 | 程序员练级攻略:软件设计
77 | 程序员练级攻略:Linux系统、内存和网络
78 | 程序员练级攻略:异步I/O模型和Lock-Free编程
79 | 程序员练级攻略:Java底层知识
80 | 程序员练级攻略:数据库
81 | 程序员练级攻略:分布式架构入门
82 | 程序员练级攻略:分布式架构经典图书和论文
83 | 程序员练级攻略:分布式架构工程设计
84 | 程序员练级攻略:微服务
85 | 程序员练级攻略:容器化和自动化运维
86 | 程序员练级攻略:机器学习和人工智能
87 | 程序员练级攻略:前端基础和底层原理
88 | 程序员练级攻略:前端性能优化和框架
89 | 程序员练级攻略:UI/UX设计
90 | 程序员练级攻略:技术资源集散地
91 | 程序员面试攻略:面试前的准备
92 | 程序员面试攻略:面试中的技巧
93 | 程序员面试攻略:面试风格
94 | 程序员面试攻略:实力才是王中王
95 | 高效学习:端正学习态度
96 | 高效学习:源头、原理和知识地图
97 | 高效学习:深度,归纳和坚持实践
98 | 高效学习:如何学习和阅读代码
99 | 高效学习:面对枯燥和量大的知识
左耳听风
登录|注册

54 | 管理设计篇之“边车模式”

陈皓 2018-04-05
所谓的边车模式,对应于我们生活中熟知的边三轮摩托车。也就是说,我们可以通过给一个摩托车加上一个边车的方式来扩展现有的服务和功能。这样可以很容易地做到 " 控制 " 和 " 逻辑 " 的分离。
也就是说,我们不需要在服务中实现控制面上的东西,如监视、日志记录、限流、熔断、服务注册、协议适配转换等这些属于控制面上的东西,而只需要专注地做好和业务逻辑相关的代码,然后,由“边车”来实现这些与业务逻辑没有关系的控制功能。

边车模式设计

具体来说,你可以理解为,边车就有点像一个服务的 Agent,这个服务所有对外的进出通讯都通过这个 Agent 来完成。这样,我们就可以在这个 Agent 上做很多文章了。但是,我们需要保证的是,这个 Agent 要和应用程序一起创建,一起停用。
边车模式有时候也叫搭档模式,或是伴侣模式,或是跟班模式。就像我们在《编程范式游记》中看到的那样,编程的本质就是将控制和逻辑分离和解耦,而边车模式也是异曲同工,同样是让我们在分布式架构中做到逻辑和控制分离。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《左耳听风》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(17)

  • 约书亚
    出门左转,service mesh就是靠sidecar支撑起来的,随着微服务的升级换代sidecar会越来越多的提起
    netflix有prana,主要是针对自己的微服务全家桶的,好像spring cloud也有对应实现


    2018-04-26
    10
  • AYOU
    求一个边车模式的开源项目。。
    2018-04-26
    9
  • c3po
    linkerd 边车部署
    2018-04-28
    2
  • 秋天
    有没有可以参考的边车模式实现????
    2018-04-26
    1
  • 曾经的十字镐
    第一遍没有好好看,感觉和api gateway差不多,第二遍看的时候发现其中的猫腻,感谢老鼠哥
    2018-04-26
    1
  • edisonhuang
    边车模式是为了解决服务控制和逻辑的分离,同时解决服务上下文的问题。和边车模式类似还有使用SDK或者框架的方式,后者相较边车模式的缺点在于需要侵入到软件代码中,当需要改造的软件较老时,使用边车模式可以不受编程语言的限制。
    使用边车模式和应用软件是同机器一起部署的,虽然有跨进程调用的开销,但基本可以忽略
    2019-07-17
  • ZhYB
    回头一想,发现这个模式有一个问题,就是粒度比较粗,它只能做到接口级别。这样细粒度(代码片段级别)的监控、日志做不了。但是其实也无所谓,更重要更大头的熔断降级限流重试、注册、协议适配等可以做。
    2019-06-26
  • ZhYB
    这个有意思啊,对于复杂的分布式服务来说确实好处非常多,我竟然第一次听说。这种模式目前有公司在用了吗?控制和逻辑分离,思想很不错,实现也简单,感觉有搞头。
    2019-06-26
  • Sam_bo
    目前我所知道的边车模式 thanos https://github.com/improbable-eng/thanos 应该算是边车模式的一种,不确定说的是不是对的
    2019-01-21
  • 恒修
    会有一点性能开销
    2018-11-18
  • Panda
    Sidecare 和Server Mesh 密切相关 例如开源项目istio
    2018-10-18
  • Han
    耗子叔,能否推荐个工具或框架能比较好的实现边车模式呢?
    2018-07-04
  • neohope
    在近期的项目中用过,新项目是基于spring cloud的,我们有些旧服务是C#写的webservice,重新封装为rest,并用了side car模式提供服务信息和监控信息,虽然与spring boot实现的服务还是有些差距,但效果还可以:)
    2018-06-24
  • 风的叹息
    如果再有一节实践讲解就更好啦,知道原理和实践还有些路程。
    2018-06-04
  • free
    没个写笔记功能啊。sidecar还没用过
    2018-05-03
  • LIngo1990
    hadoop生态集群管理工具,cloudera manager 了解一下?
    2018-04-26
  • 枫晴 andy
    一次调用副作用和调用多次副作用一样,这里的副作用是指什么?
    2018-04-26
收起评论
17
返回
顶部