码迷,mamicode.com
首页 > 编程语言 > 详细

SpringBoot整合ActiveMQ开启持久化

时间:2020-02-15 22:06:07      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:listener   info   efault   http   消费者   etc   factory   ltm   代码   

1.开启队列持久化

只需要添加三行代码

jmsTemplate.setDeliveryMode(2);
jmsTemplate.setExplicitQosEnabled(true);
jmsTemplate.setDeliveryPersistent(true);

技术图片

 

 

 

2. 开启主题持久化,启动类添加如下配置

@Bean(name = "topicListenerFactory")
            public JmsListenerContainerFactory<DefaultMessageListenerContainer> topicListenerFactory(ConnectionFactory connectionFactory){
                DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();

                factory.setSubscriptionDurable(true);// Set this to "true" to register a durable subscription,

                factory.setClientId("B");

                factory.setConnectionFactory(connectionFactory);
                return factory;

            }

//消费者消费  destination队列或者主题的名字
            @JmsListener(destination = "boot_topic",containerFactory = "topicListenerFactory")
            public void getMessage(TextMessage message,Session session) throws JMSException {
                System.out.println("消费者获取到消息:"+message.getText());
            }

这里需要注意,主题的数据不会被消费,会被一直记录下来,只能手动清除

技术图片

 

 

SpringBoot整合ActiveMQ开启持久化

标签:listener   info   efault   http   消费者   etc   factory   ltm   代码   

原文地址:https://www.cnblogs.com/chx9832/p/12313826.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!