簡體   English   中英

使用Spring JMS發布訂閱實現

[英]Publish subscribe implementation with Spring JMS

我有一個JmsTemplate的JMS隊列實現。 將消息放入隊列時,我希望有多個偵聽器,即,我想使用主題而不是隊列。

我沒有JMS名稱空間配置。 當某人在某個主題中發送消息時,要使多個偵聽器偵聽該主題,需要進行哪些更改。

我猜您可能正在使用DefaultMessageListenerContainer 可以肯定的是,您希望多個組件收到相同的消息(即,您不想並行處理消息)。

假設我沒錯,並且組件A和組件B應該收到相同的消息,則只需在同一主題上創建兩個DefaultMessageListenerContainer實例,然后將pubSubDomain屬性設置為true 確保尚未在偵聽器容器上設置任何並發,或者更好的做法是,將並發設置為1以使其明確。

這會給像

<bean id="listener1"
      class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="pubSubDomain" value="true"/>
    <property name="concurrency" value="1"/>
    <property name="destinationName=" value="...."/> <!-- topic name -->
    <property name="messageListener" ref="...."/> 
</bean>

然后,您應該為第二個組件創建一個類似的bean。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM