Java 我可以使用Spring集成通过RabbitMQ进行同步/阻塞调用吗?
假设我有两个Java应用程序,A和B,使用SpringIntegration的RabbitMQ支持进行通信 我可以从a到B进行同步/阻塞呼叫吗?如果是,如何(大致)Java 我可以使用Spring集成通过RabbitMQ进行同步/阻塞调用吗?,java,spring,rabbitmq,spring-integration,Java,Spring,Rabbitmq,Spring Integration,假设我有两个Java应用程序,A和B,使用SpringIntegration的RabbitMQ支持进行通信 我可以从a到B进行同步/阻塞呼叫吗?如果是,如何(大致) 理想情况下,A有一个Spring集成网关,它通过一个名为 Object doSomething(Object param) 然后,当网关通过RabbitMQ将消息发送到B上的ServiceActivator时,它会阻塞,B返回返回值,该值最终成为doSomething()方法的结果 这似乎是可能的,但文档和其他堆栈溢出问题似乎没
理想情况下,A有一个Spring集成网关,它通过一个名为
Object doSomething(Object param)
然后,当网关通过RabbitMQ将消息发送到B上的ServiceActivator时,它会阻塞,B返回返回值,该值最终成为doSomething()方法的结果
这似乎是可能的,但文档和其他堆栈溢出问题似乎没有直接解决这一问题
非常感谢 事实上是这样。网关模式正好实现了这个需求 您的客户端被阻止等待来自该网关方法的结果,但底层集成流可以是
异步
,并行
等
Spring Integration AMQP为使用RabbitMQ的阻塞请求/应答场景提供
当然,另一方面,接收方应注意相关性
,以便从请求消息向相应的replyToAddress
发送回复。这里有使用
的简单方法。很好-谢谢!需要澄清的一点是,我不够具体:我指的是消息网关,而在您的回复中,您主要提到出站/入站AMQP网关。这一切可能都很好,我只是将我的消息网关的输出通道作为输入连接到AMQP出站网关-这就是你所说的整个设置,对吗?正确。请随意提出更多问题