• 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();
    }

    }
    });
  • 相关阅读:
    Android ---------- 下拉刷新,上拉加载
    Android ---------- 富文本构建
    php操作字符串(移除字符,计算字符串中字符个数,分割字符串,字符串序列化
    Android ---------- 弹出层自定义布局 之 AlertDialog
    Android ---------- 延时操作
    Android ---------- TabLayout 实战 (二) 仿京东商品详情页
    定风波·莫听穿林打叶声
    hiveSQL执行,转化为MR过程
    who 命令显示关于当前在本地系统上的所有用户的信息
    hadoop中压缩与解压详解
  • 原文地址:https://www.cnblogs.com/ustc-anmin/p/11343330.html
Copyright © 2020-2023  润新知