【发布时间】:2021-06-24 15:25:11
【问题描述】:
上周我一直在研究微服务架构模式及其要求和约束。 大多数资源建议使用事件总线/消息代理(异步通信)在微服务之间进行通信,而不是使用 REST API 端点。 同步调用会导致响应时间变长,如果链中某个特定微服务发生故障,可能会导致级联故障。
问题:
假设用户请求网站/移动应用程序上的特定功能或页面,然后需要从多个微服务获取数据并使用它们各自的功能来提供所需的结果。但是为了达到预期的结果(对客户端的响应),所有服务都需要在后端将响应发送回客户端(网站/移动应用程序)之前完成它们的工作。
但是,如果我们使用异步服务请求 - 这意味着调用服务不会等待响应,而是会在不从异步调用服务获取数据的情况下将自己的响应发送回客户端 - 如果异步调用的服务可能不完整,则结果可能不完整被调用的服务没有及时响应(服务不可用或网络问题)。这意味着后端将向客户端发送不完整的响应,这是不可接受的。
我该如何处理这个问题,还是我的概念有误?
感谢每一个回答
【问题讨论】:
标签: asynchronous microservices communication soa synchronous