本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
同步通信
在同步通信中,客户端会向服务发起请求,如下图所示。示例包括获取信息的请求(例如 HTTP GET 请求)或更改数据的请求(例如 HTTP
PUT 请求)。无论哪种情况,客户端都需要等待服务器做出响应后再继续。同步调用对大多数开发人员而言并不陌生,其实施和故障排查都较为简单,在许多情况下更是被广泛接受的通信标准。
同步通信的优势包括:
-
流量控制可预测 – 确定性执行和清晰的请求-响应循环,相比异步通信更易于理解。
-
强一致性 – 即时确认数据更改和状态更新。
-
错误处理简单 – 直接传播错误和异常。
-
易于调试 – 直接跟踪和监控请求。
-
协议支持 – 诸如 HTTP、REST 等成熟协议,使得实施过程变得简单明了。
同步通信存在一些缺点:
-
紧密耦合 – 服务之间对彼此可用性的直接依赖关系。
-
网络影响 – 因持续保持连接而导致网络负载增加。
-
资源利用率 – 因维持连接状态而导致内存使用量增加。
-
级联故障 – 某项服务中的问题能够在系统中迅速蔓延。