zoukankan      html  css  js  c++  java
  • activeMQ(1)

    消息中间件

    作用:解耦 削峰  异步


    JMS编码总体架构:


    一般代码流程

     @Test
        public void test1(){
            //创建连接工厂
            ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(MQ_URL);
            try {
                Connection connection = factory.createConnection();
                connection.start();
    
                //创建会话session
                Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
    
                //创建目的地(具体是队列还是主题)
                Queue queue = session.createQueue("myFirstQueue");
    
                //创建消息的生产者
                MessageProducer producer = session.createProducer(queue);
                for (int i = 0; i < 3; i++) {
                    //创建消息
                    TextMessage message = session.createTextMessage("hello--->"+i);
                    //通过消息生产者发送消息至mq
                    producer.send(message);
                }
                producer.close();
                session.close();
                connection.close();
    
            }catch (Exception e){
                e.printStackTrace();
            }
    
            System.out.println("********************");
    
        }

     @Test
        public void test2(){
            //创建连接工厂
            ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(MQ_URL);
            try {
                Connection connection = factory.createConnection();
                connection.start();
    
                //创建会话session
                Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
    
                //创建目的地(具体是队列还是主题)
                Queue queue = session.createQueue("myFirstQueue");
    
                //创建消息的消费者
                MessageConsumer consumer = session.createConsumer(queue);
                for (int i = 0; i < 3; i++) {
                    TextMessage message = (TextMessage)consumer.receive();   //阻塞式接收
                    if(message!=null){
                        System.out.println("receive---->"+message.getText());
                    }
                }
    //监听器式接收
           consumer.setMessageListener((Message message) -> {
        if (message != null && message instanceof TextMessage) {
    try {
    System.out.println(((TextMessage) message).getText());
    } catch (Exception e) {
    e.printStackTrace();
    }

    }
    });
    consumer.close(); session.close(); connection.close(); }catch (Exception e){ e.printStackTrace(); } System.out.println("********************"); }


    consumer.setMessageListener((Message message) -> {
    if (message != null && message instanceof TextMessage) {
    try {
    System.out.println(((TextMessage) message).getText());
    } catch (Exception e) {
    e.printStackTrace();
    }

    }
    });
  • 相关阅读:
    网页对ipad iphone 的样式支持
    Url Properties of SPSite and SPWeb
    vs 2010 中添加 代码模板,动态生成创建时间,创建作者等信息
    明确工作目标,提升工作效率的利器Momentum插件
    与父亲相处的无奈
    VS2012一打开就停止工作的解决方法
    关于SQL Server 中连接查询Join的几种常见用法
    CSS零基础学习笔记.
    SQL Server2014,附加数据库失败,错误为:5120的解决方法
    C#Abstract抽象类的语法
  • 原文地址:https://www.cnblogs.com/ustc-anmin/p/11343330.html
Copyright © 2011-2022 走看看