并发处理 - JMS
Concurrent Processing - JMS
我看到我公司的一个应用程序使用 JMS 进行并发调用。该应用程序是用 Spring 编写的网络服务。这会进行多次外部调用。当接收到操作请求时,它会将大量消息发布到 JMS 队列,然后 MDB 会处理这些消息。然后应用程序整理所有响应,将其映射回其数据模型和 returns 响应。我过去曾使用 JMS 来发火并忘记调用,但我无法弄清楚应用程序如何等待来自 JMS 队列的响应。请问有什么办法可以解释一下吗?
Vicky,完成此操作的一种方法是使用业务关联。真正意义上的消息传递是异步的。但是可以使用 "psuedo-synchronous" 调用。这样做的方法是在发布请求时使用 ID,并在同一线程上使用 JMSMessageSelector(具有相同的 ID)轮询响应。此外,如果有多个后端,您还可以进行聚合,这也可以通过在消息中包含一个部分 ID 并在聚合和发送响应之前进行轮询以查看是否所有 "parts are assembled" 。
JMS Message Selector. A high level overview of the patterns are documented here 还有
我看到我公司的一个应用程序使用 JMS 进行并发调用。该应用程序是用 Spring 编写的网络服务。这会进行多次外部调用。当接收到操作请求时,它会将大量消息发布到 JMS 队列,然后 MDB 会处理这些消息。然后应用程序整理所有响应,将其映射回其数据模型和 returns 响应。我过去曾使用 JMS 来发火并忘记调用,但我无法弄清楚应用程序如何等待来自 JMS 队列的响应。请问有什么办法可以解释一下吗?
Vicky,完成此操作的一种方法是使用业务关联。真正意义上的消息传递是异步的。但是可以使用 "psuedo-synchronous" 调用。这样做的方法是在发布请求时使用 ID,并在同一线程上使用 JMSMessageSelector(具有相同的 ID)轮询响应。此外,如果有多个后端,您还可以进行聚合,这也可以通过在消息中包含一个部分 ID 并在聚合和发送响应之前进行轮询以查看是否所有 "parts are assembled" 。 JMS Message Selector. A high level overview of the patterns are documented here 还有