ActiveMQ send and receive records

Use maven to build an environment

	junit、Activemq-all

maven dependency

    <dependencies>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-all</artifactId>
            <version>5.15.4</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

Receiver code and sender code

package com.swyd;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.junit.Test;

import javax.jms.*;

public class TestHu {
    
    

    /**
     * ActiveMQ接收代码段
     * @throws Exception
     */
    @Test
    public void testMQConsumerQueue() throws Exception{
    
    
        //1.创建工厂连接对象,需要指定ip和端口
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
        //2.使用连接工厂创建一个连接对象
        Connection connection = connectionFactory.createConnection();
        //3.开启连接
        connection.start();
        //4.使用连接对象创建会话(session)对象
        Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
        //5.使用会话对象创建目标对象,包含queue和topic(一对一和一对多)
        Queue queue = session.createQueue("test-queue");
        //6.使用会话对象创建消费者对象
        MessageConsumer consumer = session.createConsumer(queue);
        //7.向consumer对象中设置一个messageListener对象用来接收消息
        consumer.setMessageListener(new MessageListener() {
    
    

            public void onMessage(Message message) {
    
    
                if(message instanceof TextMessage){
    
    
                    TextMessage textMessage = (TextMessage) message;
                    try {
    
    
                        System.out.println(textMessage.getText());
                    } catch (JMSException e) {
    
    
                        e.printStackTrace();
                    }
                }
            }
        });
        //8.程序等待接收用户消息
        System.in.read();
        //9.关闭资源
        consumer.close();
        session.close();
        connection.close();
    }

    /**
     * activemq发送端代码
     * @throws JMSException
     */
    @Test
    public void testMQProduceQueue() throws JMSException {
    
    
        //1.创建工厂连接对象,需要指定ip和端口号
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
        //2.使用连接工厂创建一个连接对象
        Connection connection = connectionFactory.createConnection();
        //3.开启连接
        connection.start();
        //4.使用连接对象创建会话(session)对象
        Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
        //5.使用会话对象创建目标对象,包含queue和topic(一对一、一对多)
        Queue  queue = session.createQueue("test-queue");
        //Topic  topic = session.createTopic("");
        //6.使用会话对象创建生产者对象
        MessageProducer producer = session.createProducer(queue);
        //7、使用会话对象穿件一个消息对象
        TextMessage textMessage = session.createTextMessage("hu test hello2");
        //8.发送消息
        producer.send(textMessage);
        //9.关闭资源
        producer.close();
        session.close();
        connection.close();
    }
}

Guess you like

Origin blog.csdn.net/weixin_44613100/article/details/110138700