最终消息中的RabbitMQ RPC关闭响应队列

我正计划使用RabbitMQ实现RPC模式。 客户端将发送一条消息来请求来自服务器的数据快照。 服务器将通过响应队列将包含快照数据的许多消息发送回客户端。 当收到最后一条消息时,客户端应销毁响应队列。

我可以通过在消息或消息头中放置一些字段来手动实现这种模式,但是有没有实现这个的最佳实践方式,或许是指定最后一条消息的指定头字段?


当收到最后一条消息时,客户端应销毁响应队列。

我的第一反应是“为什么?”

通常的做法是让客户端应用程序在客户端连接时打开“回复”队列,并在客户端连接时保持打开状态,并将其重新用于所有回复。 如pinepain建议的那样使用自动删除将在客户端断开连接时删除队列。

我可以通过在消息或消息头中放置一些字段来手动实现这种模式,但是有没有实现这个的最佳实践方式,或许是指定最后一条消息的指定头字段?

这里没有真正的最佳实践,除了你所建议的。 尽管如此,RabbitMQ消息中没有特定的字段。

您可以添加任何您希望收到该邮件的标头,并将该标头用作标志来说明对该请求的回复已完成。 或者,您可以使用邮件正文来包含状态。

这些(可能还有更多选项)都可以正常工作。

链接地址: http://www.djcxy.com/p/61227.html

上一篇: RabbitMQ RPC close response queue on final message

下一篇: MassTransit RPC (RabbitMQ) timeout up with multiple clients