zoukankan      html  css  js  c++  java
  • ActiveMQ使用例子

    网上收集的例子:有broker,producer,consumer

    public class MqApp {
        public static void main(String[] args) throws Exception {
            // 启动broker
            BrokerService broker = new BrokerService();
            // configure the broker
            broker.addConnector("tcp://localhost:61616");
            broker.start();
            
            // 创建producer和consumer
            makeThread(new HelloProducer(), false);
            makeThread(new HelloConsumer(), false);
            
    //        LockSupport.park();
        }
     
        public static void makeThread(Runnable runnable, boolean daemon) {
            Thread t = new Thread(runnable);
            t.setDaemon(daemon);
            t.start();
        }
     
        public static class HelloProducer implements Runnable {
            public void run() {
                try {
                    // Create a ConnectionFactory
                    ActiveMQConnectionFactory connectionFactory =
    //                        new ActiveMQConnectionFactory("vm://localhost");
                            new ActiveMQConnectionFactory("tcp://localhost:61616");
     
                    // Create a Connection
                    Connection connection = connectionFactory.createConnection();
                    connection.start();
     
                    // Create a Session
                    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
     
                    // Create the destination (Topic or Queue)
                    Destination destination = session.createQueue("TEST.FOO");
     
                    // Create a MessageProducer from the Session to the Topic or Queue
                    MessageProducer producer = session.createProducer(destination);
                    producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
     
                    // Create a messages
                    String text = "Hello world! From: " + Thread.currentThread().getName() + ", " + this.hashCode();
                    TextMessage message = session.createTextMessage(text);
     
                    // Tell the producer to send the message
                    System.out.println("Sent message: "+ message.hashCode() + ", " + Thread.currentThread().getName());
                    producer.send(message);
     
                    // Clean up
                    session.close();
                    connection.close();
                }
                catch (Exception e) {
                    System.out.println("Caught: " + e);
                    e.printStackTrace();
                }
            }
        }
     
        public static class HelloConsumer implements Runnable, ExceptionListener {
            public void run() {
                try {
                    // Create a ConnectionFactory
                    ActiveMQConnectionFactory connectionFactory =
    //                        new ActiveMQConnectionFactory("vm://localhost");
                            new ActiveMQConnectionFactory("tcp://localhost:61616");
     
                    // Create a Connection
                    Connection connection = connectionFactory.createConnection();
                    connection.start();
     
                    connection.setExceptionListener(this);
     
                    // Create a Session
                    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
     
                    // Create the destination (Topic or Queue)
                    Destination destination = session.createQueue("TEST.FOO");
     
                    // Create a MessageConsumer from the Session to the Topic or Queue
                    MessageConsumer consumer = session.createConsumer(destination);
     
                    // Wait for a message
                    Message message = consumer.receive(1000);
     
                    if (message instanceof TextMessage) {
                        TextMessage textMessage = (TextMessage) message;
                        String text = textMessage.getText();
                        System.out.println("Received: " + text);
                    } else {
                        System.out.println("Received: " + message);
                    }
     
                    consumer.close();
                    session.close();
                    connection.close();
                } catch (Exception e) {
                    System.out.println("Caught: " + e);
                    e.printStackTrace();
                }
            }
     
            public synchronized void onException(JMSException ex) {
                System.out.println("JMS Exception occured.  Shutting down client.");
            }
        }
    }
  • 相关阅读:
    macOS 终端可用的 Hex 查看与编辑器
    MAC brew install 跳过 update
    zstd
    JAVA中的时区设置
    conda虚拟环境中设置环境变量
    vertx 获取请求参数
    idea2020.3激活码最新破解教程(亲测有效)
    Camtasia recorder 的快捷键
    ARM STM32 各种缩写和全称
    如何解决keil mdk中文汉字乱码或设置编码问题
  • 原文地址:https://www.cnblogs.com/allenwas3/p/8509099.html
Copyright © 2011-2022 走看看