消息中间件--activemq--消费者消费队列消息

接着前一篇来,配置要求是一样的,消费者消费队列消息分7步走

1.创建connection工厂

2.创建connection

3.创建会话session

4.创建目的地(现在是连接队列)queue

5.创建消费者consumer

6.监听服务器消费消息receive()

7.释放资源

监听方法receive()有两个重载方法

(1).receive()无参方法,使用本方法监听服务器队列时,若没有消息可以消费,则会一直监听等待下一个消息到来,有消息就会直接消费。

(2).receive(long l)有参方法,参数为长整数毫秒,比如receive(4000L)表示若服务器无消息可以消费,则等待4秒,4秒之后任然无消息就会停止等待,释放资源(这个方法在服务器负载较大时可以减轻服务器负担)。

代码示例:

package com.xiaowu.activemq;

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

import static javax.jms.Session.AUTO_ACKNOWLEDGE;

public class JmsConsumer {
    public static final String ACTIVEMQ_URL="tcp://152.136.12.27:61616";
    public static final String Queuep="queue01";
    public static void main(String[] args) throws JMSException {
        //1.create factory
        ActiveMQConnectionFactory activeMQConnectionFactory=new ActiveMQConnectionFactory(ACTIVEMQ_URL);
        //2.create connect and start
        Connection connection=activeMQConnectionFactory.createConnection();
        connection.start();
        //3.create session
        Session session = connection.createSession(false, AUTO_ACKNOWLEDGE);
        //4.create 目的地
        Queue queue=session.createQueue(Queuep);
        //5.create consumer
        MessageConsumer messageConsumer=session.createConsumer(queue);
        while (true){
            //6.监听并获取消息
            TextMessage message =(TextMessage) messageConsumer.receive();
            if(null!=message){
                System.out.println("消费者消费消息:"+message.getText());
            }else {
                break;
            }
        }
        //7.关闭资源
        messageConsumer.close();
        session.close();
        connection.close();
    }
}

运行效果(消费的消息是上一篇生产者生产的)

运行后服务器端:(对比上一篇运行后服务器端的截图发现,生产的消息被消费完了,消费者等待数量为1)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值