2、边车模式 , Sidecar
1)价值
①分离控制与逻辑 , 分离业务逻辑与路由 , 流控 , 熔断 , 幂等 , 服务发现 , 鉴权等控制组件
②适用场景
- 老系统改造扩展 , Sidebar 进程与服务进程部署在同一个节点 , 通过网络协议通讯
- 多语言混合分布式系统扩展
- 应用程序由多方提供
①标准服务协议 , Sidebar 到 Service , Sidebar 到 Sidebar 协议尽可能与语言解耦
②聚合控制逻辑比如流控 , 熔断 , 幂等 , 重试 , 减少业务逻辑
③不要使用对服务侵入的方式进行进程间通讯如信号量 , 共享内存 , 优先使用本地网络通讯的方式比如 TPCP 或者 HTTP
3、服务网格 , Service Mesh
新一代微服务架构 , 本质是服务间通信的基础设施层 。

文章图片
架构图(图片来源于网络 , 若有侵权请联系作者删除)
1)特点
①应用间通讯中间层
②轻量级网络代理
③解耦应用程序
④应用程序无感知
2)主流框架
①Istio
②Linkerd
4、分布式锁
1)解决方案
①Redis 分布式锁 , SETNX key value PX expiretime
- value 生成 , 最好全局唯一比如 TraceID , 可以使用 /dev/urandom 生成
- expiretime 单位是毫秒 , 过期锁自动释放, 锁持有者保证过期时间内争抢资源完成计算
③乐观锁 , 使用版本号方式实现 , 吞吐量高 , 可能出现锁异常 , 适用于多读情况
④CAS , 修改共享数据源的场景可以代替分布式锁
2)设计要点
①排他性 , 任意条件只有一个 client 可以获取锁
②锁有自动释放方式 , 比如超时释放
③锁必须高可用 , 且持久化
④锁必须非阻塞且可重入
⑤避免死锁 , client最终一定可以获取锁 , 不存在异常情况锁无法释放的情况
⑥集群容错性 , 集群部分机器故障 , 锁操作仍然可用
5、配置中心
- 静态配置 , 环境及软件启动配置
- 动态配置 , 运行时动态调整的配置如流控开关 , 熔断开关等
- 请求响应式 , 发送方直接向接收方发送请求
- 发送方主动轮询
- 发送方注册一个回调函数 , 接收方处理完成后回调发送方
- 事件驱动设计(EDA)
- 消息订阅 , 发送方发布消息 , 接收方订阅并消费消息
- Broker 中间人 , 发送方向 Broker 发布消息 , 接收方向 Broker 订阅消息 , 彼此解耦,比如中间件 RocketMQ
推荐阅读
- 浦峰|冬奥纪实8k超高清试验频道开播,冬奥结束后转入常态化运转
- 年轻人|人生缺少的不是运气,而是少了这些高质量订阅号
- 精度|将建模速率提升10倍,消费级3D扫描仪Magic Swift在2021高交会大显“身手”
- Tesla|最高涨幅21088元:特斯拉Model 3/Y入门车型价格调整
- 新机|快准稳,捕捉每个高光瞬间! 刘衡分享EOS R5拍摄体验
- Apple|苹果高管解读AirPods 3代技术细节 暗示蓝牙带宽可能成为瓶颈
- 人工智能|聚焦车载人工智能计算芯片研究 推进汽车产业高质量发展
- 凝胶|高交会刮起 “专精特新”风 “小巨人”撑起大视野
- Tesla|特斯拉新款Model S电池体积小能量密度高 外媒揭秘三大关键技术
- 养殖|科创信达冠名!第二届智慧养殖高峰论坛帷幕:推动畜牧行业新升级