• activemq 学习系列(四) 消息提供和消费


    消息提供和消费

    package com.test;
    
    import javax.jms.Connection;
    import javax.jms.DeliveryMode;
    import javax.jms.Destination;
    import javax.jms.Message;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageProducer;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    
    import org.apache.activemq.ActiveMQConnectionFactory;
    
    public class ActiveMqTest {
    
        public static void main (String[] args) {
            producer();
            // consumer();
        }
        
        public static void producer () {
            try {
                String brokerURL = "tcp://localhost:61616";
                String user = "admin";
                String password = "admin";
                ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(user, password, brokerURL);
                
                Connection connection = factory.createConnection();
                connection.start();
                
                Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                Destination queue = session.createQueue("demoQueue");
                
                MessageProducer messageProducer = session.createProducer(queue);
                messageProducer.setDeliveryMode(DeliveryMode.PERSISTENT);
                
                String text = "hello activemq";
                
                Message textMessage = session.createTextMessage(text);
                messageProducer.send(textMessage);
                
                session.close();
                connection.close();
            } catch (Exception e) {
                System.out.println(e);
                e.printStackTrace();
            }
        }
        
        public static void consumer () {
            try {
                String brokerURL = "tcp://localhost:61616";
                String user = "admin";
                String password = "admin";
                ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(user, password, brokerURL);
                
                Connection connection = factory.createConnection();
                connection.start();
                
                Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                Destination queue = session.createQueue("demoQueue");
                
                MessageConsumer consumer = session.createConsumer(queue);
                Message message = consumer.receive(1000);
                
                if (message instanceof TextMessage) {
                    TextMessage textMessage = (TextMessage) message;
                    String text = textMessage.getText();
                    
                    System.out.println( text );
                }
                consumer.close();
                session.close();
                connection.close();
            } catch (Exception e) {
                System.out.println(e);
                e.printStackTrace();
            }
        }
    
    }

    1、执行 producer 方法后在管理界面可以看到相关信息

    2、执行 consumer 方法,消费消息

  • 相关阅读:
    JZOJ 100019.A
    idea突然无法智能提示了
    C基于 postgresql-devel 连接postgresql 数据库,实现增删改查的代码封装
    gcc 编译第三方库
    C 语言中的指针函数写法
    java 基于RXTX配置linux和window串口
    springboot 在windows 中打jar包运行正常, 但是在linux 环境中报错 加载不到主类
    求4 的余数
    win10 定时重启某个程序
    win10 使用ssh远程 linux机器并修改了hostname, 然后重新连接的时候连接不上, 但是其它机器可以远程上
  • 原文地址:https://www.cnblogs.com/bmw320li/p/10006018.html
Copyright © 2020-2023  润新知