分布式通讯

79 阅读1分钟
  • 同步:打电话,实时响应
  • 异步;发短信,不需要马上回复

高吞吐量场景,异步比同步好,举个例子:一个人不能同时给多个人打电话,但是一个人可以同时给多个人发短信。

同步缺点

  • 如果被调用方不满足调用方的吞吐,因为性能的不足拖累了调用方
  • 调用方一直等待被调用方完成,如果被调用方也调用了其他的被调用方,一层接着一层,延长等待时间,极度消耗资源。
  • 同步只能一对一
  • 被调用方出问题,会导致连锁反应

异步优点

  • 增加系统吞吐量
  • 服务间彻底解耦
  • 调用方和被调用方可以根据自己的速率灵活调整

异步通讯三种方式

  • 请求响应

image.png

  • 订阅:发送方不关心订阅的结果,给我个ACK(确认消息)就行。接收方订阅发送方

image.png

  • broker方式

image.png

image.png

broker好处

  • 服务之间没有依赖,平等关系
  • 每个环节高度隔离
  • 通过事件关联
  • 服务增加切面容易
  • 按照服务自己的速度处理吞吐

为什么选择异步方式

  • 方便服务解耦
  • 解耦可以对服务隔离性好
  • 获得更大吞吐量
  • 把抖动的吞吐量变得均衡,这是削峰
  • 服务相对独立不受干扰