【发布时间】:2018-04-27 22:09:25
【问题描述】:
我不知道如何用语言来表达,所以这里有一个(相当常见的)例子。
假设用户正在使用我们的博客服务并点击“保存”按钮发布他的精彩博客文章。 现在一个常见的用户故事是,他将被通知他的操作结果 - 一个类似“成功发布!”的通知。或“发生错误。请重试。”。
在同步世界中,这并不难 - 您向服务器发送请求,等待响应,然后根据响应显示通知。
但是让我们假设我们的服务器是面向微服务的架构,利用异步通信;例如,我们使用消息队列。 API 网关微服务从前端接收请求,将其消息发布到队列中。然后一个“消费者”微服务将消费消息的结果发送到前端。 在这种情况下,什么是回馈用户操作结果的好方法? 例如,如果我们设置一个 websocket 会话来获取此类响应,则启动用户操作的代码和为用户操作提供反馈的代码最终将完全分开,尽管它发生在同一个用户工作流程中。这是一个明智的想法吗?还是我在这里遗漏了一些基本概念?
【问题讨论】:
标签: asynchronous architecture microservices