Spring集成:将Web服务挂钩到FIFO队列

Mik*_*ler 2 queue spring spring-integration

我仍在努力使用Spring Integration-这是我的方案:

  1. Web服务从客户端A获取请求
  2. Web服务将请求放入队列
  3. 队列使用者处理消息FIFO并发送一个响应,该响应被路由回Web服务
  4. Web服务将响应发送回客户端A.

将有多个Web服务将消息传送到此队列,我需要确保它们按照接收的顺序进行真正的处理.

我需要将哪些Spring Integration连接在一起?

kgi*_*kis 7

我无法帮助您使用Spring Integration,但也许您需要再次考虑您的架构.在ESB系统中,当您知道消息的处理将花费相当长的时间或者您不确定远程端是否准备就绪时,您通常会在队列中放置消息(另一个原因是桥接不兼容的组件).将消息添加到队列时,会立即返回到请求者,指示已收到消息,但未提供操作结果.然后请求者需要轮询结果,或者您可以选择提供某种"推送"功能.

因此,如果处理队列中的消息需要花费大量时间,我建议您修改架构.Web客户端长时间等待回复并不常见,许多请求也可能超时.

另一方面,如果消息的处理快速可靠,则不需要使用队列信道.让所有消息与中央组件(Java EE会话Bean,Spring Bean,Web服务)通信,并自己实现队列机制.他们已经回答了如何做到这一点.