有没有办法强制使用JMS消息选择器?

问题描述 投票:1回答:1

我目前正在测试JMS队列(第一次使用JMS)和消息驱动的bean。我创建了一个队列,为其他应用程序提供其中一个项目的状态更新。

Logic是用本机JMS编写的,使用ActiveMQ实现部署在JBOSS7上。

它取决于选择器将消息传递给正确的客户端,虽然我可以真诚地对待我的同事,但我最好强制使用选择器,这样客户端就不会消耗不适合他们的消息。

所以基本上我更希望没有消息传递给没有指定选择器的客户端。

当我部署没有任何选择器的消费者时,它只消耗队列中可用的所有消息。

否则一切都按预期工作。

我已经看过并且找不到任何我正在寻找的东西,也许它可以通过配置ActiveMQ本身来实现,但我并不是真的在那个生态系统中。

java java-ee jms message-queue java-ee-7
1个回答
0
投票

因此,通过使用我不了解的系统来解决问题,如果有人需要,我认为我会在这里分享:

JMS客户端位于不同的物理机器上,因此最初的计划是进行手动JNDI远程查找以访问队列,但这会导致一些问题。当队列不可用时,主要是必须编写重试逻辑。

我把那个计划扔出窗外,选择了一个桥,而不是按照这里的指南:http://www.mastertheboss.com/howto/jboss-jms6/configuring-jms-bridge-with-wildfly-10

这有多个优点(生产者系统或客户端都可以关闭而不会导致太多问题)但最明显的是这解决了我的问题:我可以在每个客户端的桥上定义一个选择器。所以选择谁接收哪些消息的责任又回到了我的法庭。

我将很难实现这一点。

© www.soinside.com 2019 - 2024. All rights reserved.