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

Java 有没有办法强制使用JMS消息选择器?,java,jakarta-ee,jms,message-queue,java-ee-7,Java,Jakarta Ee,Jms,Message Queue,Java Ee 7,我目前正在测试JMS队列(第一次使用JMS)和消息驱动bean。 我已经创建了一个队列,为其他应用程序提供我们的一个项目的状态更新 逻辑是用原生JMS编写的,使用ActiveMQ实现部署在JBOSS7上 这取决于选择器将消息传递给正确的客户机,虽然我可以对我的同事抱有诚意,但最好是强制使用选择器,这样客户机就不会使用不适合他们的消息 因此,基本上我更希望没有消息被传递到没有指定选择器的客户机 当我在没有任何选择器的情况下部署使用者时,它只会使用队列中可用的所有消息 否则一切正常 我已经看过了,但

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

逻辑是用原生JMS编写的,使用ActiveMQ实现部署在JBOSS7上

这取决于选择器将消息传递给正确的客户机,虽然我可以对我的同事抱有诚意,但最好是强制使用选择器,这样客户机就不会使用不适合他们的消息

因此,基本上我更希望没有消息被传递到没有指定选择器的客户机

当我在没有任何选择器的情况下部署使用者时,它只会使用队列中可用的所有消息

否则一切正常


我已经看过了,但没有找到我想要的任何东西,也许可以通过配置ActiveMQ本身来实现,但我在这个生态系统中并不太自在。

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

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

我放弃了这个计划,转而选择了一座桥,按照这里的指南:

这有多个优点(生产者系统或客户机都可以在不引起太多问题的情况下停机),但最显著的是,这解决了我的问题:我可以为每个客户机在桥接器上定义一个选择器。因此,选择谁接收哪些信息的责任回到了我的法庭上


我在实现这一点时会遇到一些困难。

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

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

我放弃了这个计划,转而选择了一座桥,按照这里的指南:

这有多个优点(生产者系统或客户机都可以在不引起太多问题的情况下停机),但最显著的是,这解决了我的问题:我可以为每个客户机在桥接器上定义一个选择器。因此,选择谁接收哪些信息的责任回到了我的法庭上

我将尝试实现这一点