Spring集成:多个JMS入站网关共享同一通道的线程安全性

拉吉

我有两个jms:入站网关,它们侦听两个不同的队列管理器/队列,但是共享相同的入站/错误/出站通道。一旦收到并处理了消息,网关就必须基于JMSReplyTo标头进行响应(处理的方式与我们在不同主机上拥有队列管理器的方式相同)。由于出站通道相同,因此网关将如何区分要发送的响应队列。那么问题是网关是否维护自己的通道实例?如果不是,我应该为两个网关设置不同的入站/错误/出站通道集,以便发送者获得正确的响应或有更好的解决方案。请指教。

<int-jms:inbound-gateway id="test1"
    request-channel="inbouldChannel"
    reply-channel="outboundChannel"
    error-channel="errorChannel"
    header-mapper="headerMapper"
    container="listenerContainer1"/>

<int-jms:inbound-gateway id="test2"
    request-channel="inbouldChannel"
    reply-channel="outboundChannel"
    error-channel="errorChannel"
    header-mapper="headerMapper"
    container="listenerContainer2"/>
加里·罗素

它们使用相同的请求通道实例;但它们会在replyChannel每封邮件标题中添加一个唯一的临时回复渠道

您应该reply-channel在网关上省略该属性,并且不要output-channel在处理消息的最后一个端点上提供。然后,框架将使用标头将回复路由到正确的网关。

即使使用您的配置,它实际上也可以工作(因为最终它被桥接到在任何网关接收到答复的报头通道中),但是reply-channel在两个网关上都具有相同的外观看起来很奇怪

最干净的解决方案是仅忽略属性,并让框架负责路由。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Hyperledger Fabric V1.0中在同一通道内的对等节点之间实现通道间安全性

多个 Go 例程从同一通道读取

如何处理关闭同一通道的多个go例程?

是否可以确保为同一通道的同一线程调用channelActive和channelRead?

连续发送到同一通道的 MIDI 信息出现乱码

Spring Integration JMS入站网关回复通道没有订阅者

Spring 集成 DSL Http 入站网关

使用超级账本结构在同一通道上部署多个链码

如何在标准输出(Windows cmd)的同一通道中打印迭代的字符串?

在select中的同一通道上读写

Spring集成-将参数和流从WebFlux入站网关传递到WebFlux出站网关

记录 Spring 集成 http 入站网关端点

如何在一个ipc主(同一通道)中区分两个ipc渲染器

如何根据图形绘制的唯一通道名称拆分数据框

Spring安全性的集成测试

两个例程在同一通道上进行通信

Spring安全性OAuth2示例中的缺陷:用于多个提供程序的同一OAuth2ClientContext

Servlet的Toolbox共享方法的线程安全性

如何在Spring集成中使用Java DSL创建ws入站网关?

Spring集成:将响应发送到客户端http入站网关

如何使用Hyperledger composer在同一通道上配置两个P2P节点?

在多个线程中使用空引用实例的安全性

Spring JMS出站网关接收超时被忽略

用于同步 REST 调用的 Spring 集成出站网关方式

Spring集成出站网关希望像动态使用URL

出站网关Spring集成中的回调

如何在Spring集成中模拟出站网关

无法从 Spring 集成出站网关调用 HTTPS 端点

Spring集成文件出站网关和WebService