同步通信 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

同步通信

在同步通信中,客户端会向服务发起请求,如下图所示。示例包括获取信息的请求(例如 HTTP GET 请求)或更改数据的请求(例如 HTTP PUT 请求)。无论哪种情况,客户端都需要等待服务器做出响应后再继续。同步调用对大多数开发人员而言并不陌生,其实施和故障排查都较为简单,在许多情况下更是被广泛接受的通信标准。

客户端与微服务或者微服务与微服务之间的同步通信。

同步通信的优势包括:

  • 流量控制可预测 – 确定性执行和清晰的请求-响应循环,相比异步通信更易于理解。

  • 强一致性 – 即时确认数据更改和状态更新。

  • 错误处理简单 – 直接传播错误和异常。

  • 易于调试 – 直接跟踪和监控请求。

  • 协议支持 – 诸如 HTTP、REST 等成熟协议,使得实施过程变得简单明了。

同步通信存在一些缺点:

  • 紧密耦合 – 服务之间对彼此可用性的直接依赖关系。

  • 网络影响 – 因持续保持连接而导致网络负载增加。

  • 资源利用率 – 因维持连接状态而导致内存使用量增加。

  • 级联故障 – 某项服务中的问题能够在系统中迅速蔓延。