ActiveMQ消息持久化_队列_7

消息持久话

一 、 持久化

     1.1  非持久 messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT)

             非持久化:当服务器宕机,消息不存在

     1.2 持久 messageProducer.setDeliveryMode(DeliveryMode.PERSISTENT)

            持久化:当服务器宕机,消息依然存在

     默认的持久化消息是,1.2 持久,此模式保证这些消息只被传送一次和成功使用一次。对于这些消息,可靠性是优先考虑的因素

可靠性的另一个重要的方面是确保持久性消息传送至目标后,消息服务在向消费者传送它们之前不会丢失这些消息

1,1 非持久

public class JmsProduce {

    public static final String ACTIVEMQ_URL = "tcp://10.5.96.48:61616";
    public static final String QUEUE_NAME = "queue01";

    public static void main(String[]args) throws JMSException {
        //1.创建连接工厂
        ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(ACTIVEMQ_URL);
        //2.通过连接工厂,获得连接connection并启动访问
        Connection connection = activeMQConnectionFactory.createConnection();
        connection.start();
        //3.创建会话 session
        //两个桉树 ,第一个叫事务  第二个叫签收
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        //4 .创建目的地(具体是队列还是主题topic)
        Queue queue = session.createQueue(QUEUE_NAME);
        //5. 创建消息的生产者
        MessageProducer messageProducer = session.createProducer(queue);
        /******** 非持久 start ***********/
        //消息的持久化设置(现在是非持久)
        messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
         /******** 非持久 end ***********/
        //6.通过使用messageProducer 生产3条消息发送到队列里面
        for (int i = 0; i <3 ; i++) {
            // 7.创建消息
            TextMessage textMessage = session.createTextMessage("Msg---" + i);
            //8.消息生产者发送给mq
            messageProducer.send(textMessage);
        }
        //9.关闭资源 顺着开启,倒着关闭
        messageProducer.close();
        session.close();
        connection.close();

        System.out.println("**** 消息发布到MQ完毕 ****");
    }

}

    然后停止服务器,然后在重启服务,消息没有了

 

 1.2 持久化 演示和上面的一样只不过是将  

messageProducer.setDeliveryMode(DeliveryMode.PERSISTENT); 

写入这段代码替换非持久的地方,或是默认不写  也会选择持久化作为 默认的模式。消息被保存在服务中 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值