【发布时间】:2019-10-21 17:03:27
【问题描述】:
我正在使用 Spring Framework 中的 JmsTemplate 通过 JMS 进行集成。我想对外部系统执行同步(即阻塞)调用。我读过
为了做到这一点,我应该使用 CorrelationID。 JMS specification 说:
客户端可以使用 JMSCorrelationID 标头字段来链接一条消息 和另外一个。一个典型的用途是将响应消息与其 请求消息。
所以它清楚地建议使用 CorrelationID 请求/回复模式。
我还发现JmsTemplate 具有旨在实现类似目标的sendAndReceive 方法。 sendAndReceive 内部使用doSendAndReceive,根据javadoc:
向给定的目标发送请求消息并阻塞,直到 已在动态创建的临时队列中收到回复。
现在我真的很困惑。 CorrelationID 标头是否与 ReplyTo 标头有共同之处。这两种实现同步调用的方式不同吗?或者也许两者应该一起使用?用简单的英语进行简单的说明会非常受欢迎。
【问题讨论】:
标签: java spring jms spring-integration