ActiveMQ学习笔记(二)高级特性之异步投递

前言

activemq默认使用异步投递模式,两种情况除外:

1. 手动开启同步模式
2. 在未开启事务的情况下发送持久化消息

设置异步投递的三种方式

1.在url后面添加参数

在这里插入图片描述
2.使用ActiveMQConnectionFactory对象设置属性
在这里插入图片描述
3.使用ActiveMQConnection对象设置属性
在这里插入图片描述

使用异步投递消息不阻塞,消息生产者会默认消息发送成功,因此可能会出现消息丢失,所以发送的时候需要接收回调。在这里插入图片描述

测试代码

 @Test
    public void send() throws JMSException {
        ActiveMQConnectionFactory acf = new ActiveMQConnectionFactory("nio://192.168.227.129:61608");
        acf.setUseAsyncSend(true);
        Connection connection =  acf.createConnection();
        connection.start();
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Queue queue = session.createQueue("queue");
        ActiveMQMessageProducer producer = (ActiveMQMessageProducer) session.createProducer(queue);
        TextMessage textMessage = session.createTextMessage("*****asyncMessage******");
        producer.send(textMessage, new AsyncCallback() {
            @Override
            public void onException(JMSException e) {
                System.out.println("处理投递失败逻辑");
            }
            @Override
            public void onSuccess() {
                System.out.println("投递成功");
            }
        });
        System.out.println("发送成功");
        producer.close();
        session.close();
        connection.close();
    }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值