有人能举例说明生产中如何使用相关ID吗?
我已经读过它用于请求/响应类型的消息,但我不明白我会在哪里使用它?
我可以想到的一个例子(可能是错误的)是在发布订阅场景中,我可以有5个订阅者,如果我得到5个具有相同关联ID的回复,那么我可以说我的所有订阅者都收到了它。不确定这是否正确使用它。
或者如果我发送一条简单的消息,我可以使用相关性来保证客户端收到它。
还有其他例子吗?
答案 0 :(得分:9)
为外部人员提供HTTP API以执行处理任务的Web应用程序,并且您希望将调用者的结果作为对他们所做的HTTP请求的响应。
请求进来,描述任务的消息被前端服务器推送到队列。之后,前端服务器阻塞等待具有相同相关ID的响应消息。工作机器池正在侦听队列,其中一个接收任务,执行它并将结果作为消息返回。一旦具有正确的相关ID的消息进入,前端服务器继续将响应返回给调用者。
答案 1 :(得分:4)
在CQRS and EventSourcing的上下文中,命令消息相关ID很可能与来自域的相应事件一起存储。此信息稍后可用于形成audit trail。
答案 2 :(得分:0)
像您所说的Apache Flink use correlation ids之类的流引擎可以确保处理的准确性。