ActiveMQ中Topic消费者

Consumer

消费者,接收消息

接收步骤

第一步:创建一个ConnectionFactory对象
第二步:从ConnectionFactory对象中获得一个Connection对象
第三步:开启连接。调用Connection对象的start方法
第四步:使用Connection对象创建一个Session对象
第五步:使用Session对象创建一个Destination对象,和发送端保持一致topic,并且话题的名称一致
第六步:使用Session对象创建一个Consumer对象
第七步:接收消息
第八步:打印消息
第九步:关闭资源

代码

@Test
public void testTopicConsumser() throws Exception {
    //创建一个连接工厂对象
    ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.168:61616");
    //使用连接工厂对象创建一个连接
    Connection connection = connectionFactory.createConnection();
    //开启连接
    connection.start();
    //使用连接对象创建一个Session对象
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    //使用Session创建一个Destination,Destination应该和消息的发送端一致。
    Topic topic = session.createTopic("test-topic");
    //使用Session创建一个Consumer对象
    MessageConsumer consumer = session.createConsumer(topic);
    //向Consumer对象中设置一个MessageListener对象,用来接收消息
    consumer.setMessageListener(new MessageListener() {

        @Override
        public void onMessage(Message message) {
            //取消息的内容
            if (message instanceof TextMessage) {
                TextMessage textMessage = (TextMessage) message;
                try {
                    String text = textMessage.getText();
                    //打印消息内容
                    System.out.println(text);
                } catch (JMSException e) {
                    e.printStackTrace();
                }
            }

        }
    });
    //系统等待接收消息
    /*while(true) {
        Thread.sleep(100);
    }*/
    System.out.println("topic消费者3.。。。");
    System.in.read();
    //关闭资源
    consumer.close();
    session.close();
    connection.close();
}

猜你喜欢

转载自blog.csdn.net/nangeali/article/details/81532304
今日推荐