Spring JMS与不同的消息选择器共享订阅

时间:2019-08-05 13:05:03

标签: jms spring-jms activemq-artemis

我有2位监听者,他们分别通过不同的消息选择器来监听一个主题

我想使用subscriptionShared机制。

如果一条消息仅由1个消息选择器匹配,会发生什么?我可以确定收到的消息能够纠正消费者吗?

我使用:

  1. JMS 2.0
  2. ActiveMQ Artemis 2.9.0
  3. Spring JMS 4.3.8

这是我的Spring配置:

    <bean id="messageListener1" class="jms.SampleListener1"/> 

    <bean id="messageListener2" class="jms.SampleListener2"/>

    <bean id="jmsContainer1" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> 
        <property name="connectionFactory" ref="connectionFactory"/> 
        <property name="destinationName" value="messageTopic"/> 
        <property name="pubSubDomain"    value="true" />
        <property name="messageListener" ref="messageListener1" />
        <property name="messageSelector" value="header1 = 'x'"/>   
        <property name="subscriptionShared" value="true"/>
        <property name="subscriptionDurable" value="true"/> 
    </bean>

    <bean id="jmsContainer2" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> 
        <property name="connectionFactory" ref="connectionFactory"/> 
        <property name="destinationName" value="messageTopic"/> 
        <property name="pubSubDomain"    value="true" />
        <property name="messageListener" ref="messageListener2" />
        <property name="messageSelector" value="header2 LIKE 'y'"/>
        <property name="subscriptionShared" value="true"/>
        <property name="subscriptionDurable" value="true"/> 
    </bean>

0 个答案:

没有答案