【发布时间】:2014-04-10 16:45:38
【问题描述】:
在构建简单的 RESTful Web 应用程序时,我们有一个 Web 服务器来处理来自用户的请求。如果此服务器正在将请求转换为消息并将它们发布到队列中。当由微服务处理时,如何从片段(微服务消息)返回响应以及如何识别正确的用户?是通过session id还是其他id来标记队列中的消息属于哪个请求?
【问题讨论】:
标签: web-services rest service restful-architecture
在构建简单的 RESTful Web 应用程序时,我们有一个 Web 服务器来处理来自用户的请求。如果此服务器正在将请求转换为消息并将它们发布到队列中。当由微服务处理时,如何从片段(微服务消息)返回响应以及如何识别正确的用户?是通过session id还是其他id来标记队列中的消息属于哪个请求?
【问题讨论】:
标签: web-services rest service restful-architecture
当您将队列用于同步交互(请求-响应交互)时,这是一个常见问题。您需要一个用于请求的队列和一个用于响应的回调机制,它可以是第二个队列,或者在您的情况下更可能是对用户的 http 回调(假设用户可以接受 http 请求)。 无论如何,要将微服务生成的响应与原始请求相关联,您需要一个相关标识符。 correlation identifier pattern 在 Hohpe 和 Wolf 的 EIP 书中有所描述。
【讨论】:
最终完成这项工作的解决方案是将所有响应保存在键/值结构中(在本例中为另一个微服务)。当需要响应时,它会通过其 ID 调用,添加一些有效负载然后运走。在这种情况下,任何服务都可以在必要时做出响应。
【讨论】: