`

ActiveMQ中topic类型消息的持久化

 
阅读更多

1、queue默认是持久化的;topic,因为要发送给多个人,默认是非持久化的,就是说topic里的消息放在内存里,只发给在线的订阅者,如果想要收到topic里所有的消息怎么办呢?这时,又有一个新的概念了,持久订阅。

(1)、消息的生产者增加<property name="deliveryMode" value="2" />的配置。

 

<!-- 定义JmsTemplate的Topic类型 -->
	<bean id="jmsTopicTemplate" class="org.springframework.jms.core.JmsTemplate">
		<!-- 这个connectionFactory对应的是我们定义的Spring提供的那个ConnectionFactory对象 -->
		<constructor-arg ref="cachingConnectionFactory" />
		<!-- pub/sub模型(发布/订阅) -->
		<property name="pubSubDomain" value="true" />
		<!-- 进行持久化 -->
                <property name="deliveryMode" value="2" />  
	</bean>

 (2)、消息的消费者增加

 

<!-- 1、单独的接收topic消息的cachingConnectionFactory,不要和发送的或接收queue消息的一样 -->
	<bean id="cachingConnectionFactory1"
		class="org.springframework.jms.connection.CachingConnectionFactory">
		<property name="targetConnectionFactory" ref="connectionFactory"></property>
		<property name="sessionCacheSize" value="100" />
		<!-- 2、接收者ID -->  
        <property name="clientId" value="${activemq.queue.name}" />
	</bean>
	
	<bean id="topicCustomerA" class="org.apache.activemq.command.ActiveMQTopic">  
        <!-- 订阅消息的名字 -->  
        <constructor-arg index="0" value="${activemq.gwcs.topic.name}"/>  
    </bean>  
	<bean id="receiveTopicGwcsListener"
		class="com.zzstxx.unify.message.listener.ReceiveTopicGwcsListener" />
    <bean id="listenerContainerA" class="org.springframework.jms.listener.DefaultMessageListenerContainer">  
        <property name="connectionFactory" ref="cachingConnectionFactory1" />  
        <property name="destination" ref="topicCustomerA" />  
        <property name="messageListener" ref="receiveTopicGwcsListener" />  
        <!-- 3、持久化消息 -->  
        <property name="subscriptionDurable" value="true"/>  
        <!-- 4、接收者ID -->  
        <property name="clientId" value="${activemq.queue.name}" />  
        <property name="durableSubscriptionName" value="${activemq.queue.name}"/>  
    </bean>

 

 

分享到:
评论

相关推荐

    ActiveMQ中Topic持久化Demo

    总结起来,ActiveMQ中的Topic持久化涉及到消息和订阅的持久化,通过合理的配置和编程接口,我们可以确保在系统故障后,消息传递的连续性和完整性。在实际应用中,了解和掌握这部分知识对于构建可靠和容错的分布式...

    spring集成activemq演示queue和topic 持久化

    在本示例中,我们将深入探讨如何将Spring框架与ActiveMQ集成,以便实现消息队列(Queue)和主题(Topic)的功能,并确保消息的持久化。ActiveMQ是Apache软件基金会开发的一个开源消息中间件,它支持多种消息协议,如...

    spring+activemq topic持久化订阅

    spring +activemq topic消息持久化订阅实例,整个项目中有activemq和spring的整合的所有实例,topic的持久化配置是在ApplicationContext3C、ApplicationContext3C2以及ApplicationContext3P三个中,消息生产者:...

    ActiveMQ订阅模式持久化实现

    1. **配置持久化策略**:在ActiveMQ的配置文件中,需要开启消息持久化。这通常涉及修改`activemq.xml`,设置`&lt;destinationPolicy&gt;`元素中的`&lt;policyEntry&gt;`,将`persistent`属性设为`true`,以确保消息在存储和传输...

    如何实现ActiveMq的Topic的持久订阅

    总结来说,实现ActiveMQ的Topic持久订阅涉及创建Topic、设置持久订阅者、发送和接收消息,以及管理订阅。理解这些概念和操作,有助于在实际项目中构建可靠的分布式系统通信架构。在开发过程中,结合源码阅读和工具...

    ActiveMQ-Topic订阅发布模式Demo

    6. **订阅Topic**:消费者通过MessageConsumer订阅Topic,可以设置持久化订阅(Durable Subscription)来保证即使消费者离线也能接收到消息。 7. **消息过滤**:在订阅时,可以使用Selector来过滤接收到的消息,只...

    7道消息队列ActiveMQ面试题!

    在面试中,面试官可能会问到关于ActiveMQ的一些基础和深入的问题,比如ActiveMQ的特性、消息传递机制、故障处理、消息持久化、性能调优以及消息消费等方面的知识。 1. ActiveMQ的核心概念和功能 ActiveMQ提供了多种...

    ActiveMQ队列消息过期时间设置和自动清除解决方案.docx

    在 ActiveMQ 中,可以通过设置时间戳插件来实现消息过期时间设置。该插件可以根据消息的过期时间来删除消息。配置示例如下: ... &lt;!-- 86,400,000ms = 1 day --&gt; ... 其中,ttlCeiling 表示过期时间...

    Activemq同时支持多个Topic类型通信,并且配置添加到服务里面方便管理

    在实际应用中,你可能需要根据业务需求调整配置,比如设置消息持久化、设置消息存活时间、限制消费者并发数等。此外,ActiveMQ提供了Web管理界面,可以通过浏览器访问`http://localhost:8161/admin`,方便地管理和...

    activeMQ发送消息返回消息

    在实际应用中,ActiveMQ的配置和使用可能更复杂,需要考虑安全性、性能优化、持久化、网络拓扑等因素。同时,JMS规范也提供了许多高级特性,如消息选择器、消息组、消息优先级等,这些都可以根据业务需求进行灵活...

    ActiveMq发布和订阅消息的实现源码

    在分布式系统中,消息队列(Message Queue)作为一种中间件,起到了解耦、异步处理、负载...在实际项目中,可以根据需求调整配置,如设置消息持久化策略、消息确认模式、并发消费者数量等,以优化系统的性能和稳定性。

    springboot2整合activemq的demo内含queue消息和topic消息

    - 部署时,可能需要考虑ActiveMQ集群、持久化存储、安全性等因素。 通过深入理解和实践这个“springboot2-activemq”示例,开发者能够熟练掌握在Spring Boot应用中集成ActiveMQ的方法,从而在实际项目中充分利用...

    activemq的topic队列模式的maven,spring的demo

    实际应用中,你可以根据需求进行扩展,比如添加多个消费者,或者通过配置ActiveMQ服务器以实现高可用性、消息持久化等功能。此外,还可以通过调整JMS模板的配置,实现事务性消息处理或者设置消息优先级等高级特性。...

    activeMQ使用软件,以及初始化页面

    此外,ActiveMQ还支持持久化存储,即使服务器重启,未消费的消息也不会丢失。 为了保证消息的可靠传输,ActiveMQ提供了事务支持,可以在消息发送或消费时启用事务,确保消息在所有参与者都成功确认后才完成传递。...

    activeMQ收发工具.rar

    3. **消息类型**:理解JMS提供的不同消息类型,如文本消息、对象消息、流消息和二进制消息,以及如何通过ActiveMQ收发工具发送和接收这些消息。 4. **队列与主题**:熟悉ActiveMQ中的队列(Queue)和主题(Topic)...

    boot-example-activemq-topic-2.0.5

    SpringBoot+ActiveMQ-发布订阅 Topic 主题 * 消息消费者(订阅方式)消费该消息 ...* 当生产者发布消息,不管是否有消费者,都不会保存消息,如果对订阅消息提前做了持久化操作,还是可以收到的。

    ActiveMQ-P2P文本消息+Spring和ActiveMQ的整合实例源码

    **ActiveMQ 概述** ActiveMQ 是一个开源的消息中间件,它是 Java Message Service(JMS)规范的一个实现,...在实际项目中,根据具体需求,还可以进一步探索 ActiveMQ 的高级特性,如事务消息、持久化、消息优先级等。

    Spring+ActiveMQ消息队列+前台接收消息

    5. **消息的持久化**:ActiveMQ允许配置消息的持久性,即使服务器重启,未被消费的消息也不会丢失。在Spring配置中,可以通过设置`JmsTemplate`的`deliveryPersistent`属性为`true`来实现。 6. **事务管理**:...

    ActiveMQ的队列、topic模式

    - 消息的持久化设置:如果不希望消息在服务器重启后丢失,可以设置消息持久化。 - 消费者竞争:在队列模式下,多个消费者可能导致消息分配不均,需要合理设计消费策略。 - 消费确认:ActiveMQ支持自动和手动确认...

    activeMQ JMS 3种创建方式

    在实际应用中,ActiveMQ还支持许多高级特性,如消息持久化、事务处理、消息分页、消息过滤等,这些特性可以帮助构建更健壮、高效的消息通信系统。同时,ActiveMQ也支持多种协议,如OpenWire、AMQP、STOMP等,使得非...

Global site tag (gtag.js) - Google Analytics