ActiveMQ消费者消费消息(点对点模式)

上篇博客写了生产者生产消息:ActiveMQ向消息队列存入消息

package com.vhukze.consumer;

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

public class Consumer {
    //mq通讯地址
    private static String url = "tcp://127.0.0.1:61616";

    //队列名称
    private static String queueName = "my_queue";

    public static void main(String[] args) throws JMSException {

        System.out.println("消费者1");
        //创建连接工厂
        ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(url);
        //创建连接
        Connection connection = factory.createConnection();
        //启动连接
        connection.start();
        //创建会话,参数1,设置是否需要事务方式提交,参数2,消息方式  默认采用自动接收
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        //创建目标(队列)
        Queue queue = session.createQueue(queueName);
        //创建消费者
        MessageConsumer consumer = session.createConsumer(queue);
        //启动监听消息
        consumer.setMessageListener(new MessageListener() {
            @Override
            public void onMessage(Message message) {
                try {
                    TextMessage textMessage = (TextMessage) message;
                    System.out.println("消费消息:"+textMessage.getText());
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        });
    }
}

运行代码输出

现在再来看ActiveMQAdmin页面查看

我们可以启动两次消费者,就是一个集群。

然后再运行生产者代码,观察两个消费者的控制台

均摊

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章