REST服务等待异步进程的响应

时间:2016-02-08 13:17:33

标签: java rest asynchronous spring-boot jms-topic

使用Spring Boot开发REST服务

API目前使用JMS发布到主题&该主题有多个订阅者。

现在,我们有一个流程" X",它整合了这些主题的响应并将响应推送到队列。

现在,我想让API(REST服务)等待这个队列(由" X"发布) - 用于同步处理。

JMSReplyTo会支持这种情况吗?   http://activemq.apache.org/how-should-i-implement-request-response-with-jms.html

编辑:

简化

在示例中(在上面的链接中提供) -    服务器轮询到队列&等待它的回应。

我们的REST服务轮询到队列&必须等待不同的队列。

换句话说 - 网络服务如何等待&从队列中读取 - 尚未发布到

1 个答案:

答案 0 :(得分:0)

我们为解决问题所采取的措施是 - 不确定,这是正确的做法

  1. 取消默认标头JMSReplyTo
  2. 添加了我们的自定义标题" ReplyTo"
  3. 即使我们将JMSReplyTo传递给另一个队列 - 我们发现在队列处理完邮件之后,响应正在返回到调用者(REST API)。

    当我们淘汰JMSReplyTo时 - 它没有返回响应。 然后,响应如何回到REST API - 原因是,我们创建了自定义标头 - ReplyTo

    每个队列都继续将Header ReplyTo传递给所有其他队列,其中传递消息以供进一步处理。

    如果使用任何队列,则没有进一步处理(这取决于数据,客户端和...的某些条件) - 将队列发回到ReplyTo - 这是原始JMS队列,REST API是等等。

    这一直在不断努力,但是考虑到一些性能问题 - 消息正在传递给多个队列。

    但是,考虑到这个API的主要任务是确保数据传递到所有系统(集成点) - 它正在做它的工作。

    我们将再次重新审视我们如何改变设计以获得更好的吞吐量。