ActiveMQ的使用方法

流程

    队列:服务端发送一个  客户端接受到就会自动销毁那个
    广播:要先开启接受消息的一端  不然发送方发送的会自然消失

总结 队列会持久化 广播不可以 可以设置

步骤

  1. shopping_manager_service中加入activemq的依赖
  2. 在这个模块中进行测试

点对点形式发送消息

//        1.    创建一个连接工厂对象 需要指定服务的ip和端口
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616");
//        2.    使用工厂对象来创建Collection对象
        Connection connection = connectionFactory.createConnection();
//        3.    开启连接  调用Collection对象的start方法
        connection.start();
//        4.    创建一个Session对象  第一个参数  是否开始事务 如果开启事务  第二个参数没有意义
//        第二个参数的意思是应答模式  一般自动应答  手动应答
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//        5.    使用Session创建一个Destination对象  目的地  二种形式queue,topic   现在用queue
        Queue queue = session.createQueue("test_queue");
//        6.    使用Session对象创建一个Producer对象
        MessageProducer producer = session.createProducer(queue);
//        7.    创建一个Message对象  可以使用TextMeasage对象
//        TextMessage textMessage = new ActiveMQTextMessage();
//        textMessage.setText("hello activemq");
        TextMessage textMessage = session.createTextMessage("hello activemq");;
//        8.    发动消息
        producer.send(textMessage);
//        9。   关闭资源
        producer.close();
        session.close();
        connection.close();

bug

    如果web点击查看时出错就是jdk版本和activemq版本不一致的问题。
        Error!
        Exception occurred while processing this request, check the log for more information!

接受消息

        //        1.    创建一个连接工厂对象 需要指定服务的ip和端口
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616");
        //        2.    使用工厂对象来创建Collection对象
        Connection connection = connectionFactory.createConnection();
        //        3.    开启连接  调用Collection对象的start方法
        connection.start();
        //        4.    创建一个Session对象  第一个参数  是否开始事务 如果开启事务  第二个参数没有意义
        //        第二个参数的意思是应答模式  一般自动应答  手动应答
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        //        5.    使用Session创建一个Destination对象  目的地  二种形式queue,topic   现在用queue
        Queue queue = session.createQueue("que");
        //        6.    使用Session对象创建一个consumer对象
        MessageConsumer consumer = session.createConsumer(queue);

        //       接收消息
        consumer.setMessageListener(new MessageListener() {
            @Override
            public void onMessage(Message message) {
                TextMessage message1 = (TextMessage) message;
                try {
                    String text = message1.getText();
                    System.out.println("消息的内容是"+text);
                } catch (JMSException e) {
                    e.printStackTrace();
                }
            }
        });
        //       等待加收消息
        System.in.read();

        consumer.close();
        session.close();
        connection.close();

创建广播形式的

       Topic topic = session.createTopic("topic");
       MessageProducer producer = session.createProducer(topic);

results matching ""

    No results matching ""