[英]Using JMS as a request/response service
使用JMS作为请求/响应服务有各种实现。 我想知道理想的实现。 以下是这些不同的实现。
所有请求消息都发布到指定回复队列的单个请求队列中。 该服务使用请求消息并将消息发布回动态回复队列。
所有请求消息都发布到单个请求队列中,在jms属性中指定唯一ID。 唯一ID存储在本地。 服务使用请求消息并将消息发布回响应队列。 单个响应使用者将使用该消息并根据唯一ID进行适当操作。
所有请求消息都发布到单个请求队列中,在jms属性中指定唯一ID。 该服务使用请求消息,并在jms属性中将具有相同唯一ID的消息发布回主题。 响应的使用者将设置消息选择器以仅选择包含唯一ID的消息。
有谁知道其他实现? 哪些实现是使用JMS作为请求/响应服务的理想解决方案?
这就是我通常所做的:请求发布到'永久','众所周知'队列。 在请求消息中,sender指定replyTo队列,该队列可以是永久性的或动态的,具体取决于您的应用程序 需求。
应始终至少使用合理唯一的id / correlation id来跟踪日志文件中的消息的可跟踪性。它可能位于JMS头级别或有效负载级别(例如SOAP messageId),具体取决于您的要求。
我已经使用了第一个和第三个实现。 我不确定第二个,因为当一个消费者可能饿死另一个消费者时,多个消费者的单个队列会引起问题。 为避免这种情况,我们可能需要有一个调度程序 ,这可能导致可伸缩性问题,因为需要为每个使用者添加新队列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.