SpringBoot整合ActiveMQ和开启持久化(4)

  这里可以试一下让ActiveMQ服务器宕机,然后让服务器重启,看看数据有没有做持久化的操作

13、结论:当服务器宕机,重启服务器之后,没有被消费的消息依然在数据库中,这样就做到了持久化操作。 四、SpringBoot整合ActiveMQ开启持久化---主题持久化

  不会进行数据消费的,但是数据可以持久化

1、步骤1、2、3同上 4、consumer启动类StartTopicConsumer

package com.zn;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.jms.config.DefaultJmsListenerContainerFactory;
import org.springframework.jms.config.JmsListenerContainerFactory;
import org.springframework.jms.listener.DefaultMessageListenerContainer;

import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.Session;
import javax.jms.TextMessage;

@SpringBootApplication
public class StartTopicConsumer {
    public static void main(String[] args) {
        SpringApplication.run(StartTopicConsumer.class,args);
    }


    @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("A");

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());
    }
}

9、步骤5、6、7、8同上 10、启动消费者

  

SpringBoot整合ActiveMQ和开启持久化

11、启动生产者

  

SpringBoot整合ActiveMQ和开启持久化

  

SpringBoot整合ActiveMQ和开启持久化

  

12、消费者控制台

  

SpringBoot整合ActiveMQ和开启持久化

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/bcbd9f9695596f61d6709b6e8b546c09.html