spring - ACTIVEMQ - 订阅者在发布者之后启动时如何接收主题消息?

标签 spring jms activemq jmstemplate

在我的程序中,我有两个模块:- 通过主题进行通信的发布者和订阅者。

我知道为了通过订阅者接收消息,它应该在发布者之前启动。但是可能存在订阅者由于某种原因宕机需要重新启动的情况。有什么办法,如果我在发布者之后启动订阅者,那么它也应该能够接收消息?

最佳答案

使用 spring DMLC 和持久订阅者添加代码示例。使用普通的 JMSTemplate 更难实现这一点(您标记了这个,所以我猜您正在使用 JMS 模板来接收?),因为您必须从模板中获取 session 并自己创建持久消费者。如果您使用 DMLC 方法,这将自动为您处理。

<bean id="myDurableConsumer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
 <property name="connectionFactory" ref="myCf" />
 <property name="sessionTransacted" value="true" />
 <property name="subscriptionDurable" value="true"/>
 <property name="durableSubscriberName" value="myDurableNameThatIsUniqueForThisInstance" />
 <property name="destinationName" value="someTopic" />
 <property name="messageListener" ref="myListener" />
< /bean>

关于spring - ACTIVEMQ - 订阅者在发布者之后启动时如何接收主题消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13005847/

相关文章:

java - Spring - Thymeleaf 迭代

java - Spring Data - 页面请求 - 按功能排序

java - JMS 持久性和持久性

xml - ODI-1227 : ActiveMQObjectMessage cannot be cast to javax. jms.BytesMessage

activemq - 启动 ActiveMQ 代理,导致错误

spring - 如何在 Spring Batch 中使用 ClassifierCompositeItemProcessor 并将数据写入同一个表以进行 Insert 和 Upsert?

java - 使用 RESTish Web 服务时的 Web 应用程序 session

java - 我去哪里购买 Java EE jar?

jms - JMeter JMS 点对点请求响应 : "No reply message received"

go - go stomp 客户端中 ActiveMQ 的故障转移 URI