zoukankan      html  css  js  c++  java
  • RabbitMQ 简使用案例

    第一步导入依赖 :

    <dependency>
                <groupId>com.rabbitmq</groupId>
                <artifactId>amqp-client</artifactId>
                <version>3.4.1</version>
    </dependency>

    第二步编写一个连接类获取MQ的连接:ConnectionUtil

    package com.example.springboot_rabbitmq.util;
    
    import com.rabbitmq.client.Connection;
    import com.rabbitmq.client.ConnectionFactory;
    
    public class ConnectionUtil {
    
        public static Connection getConnection() throws Exception {
            //定义连接工厂
            ConnectionFactory factory = new ConnectionFactory();
            //设置服务地址
            factory.setHost("localhost");
            //端口
            factory.setPort(5672);
            //设置账号信息,用户名、密码、vhost
            factory.setVirtualHost("/");
            factory.setUsername("guest");
            factory.setPassword("guest");
            // 通过工程获取连接
            Connection connection = factory.newConnection();
            if (connection.isOpen()){
                System.out.println("连接成功");
            }else{
                System.out.println("连接失败");
            }
            return connection;
        }
    
        public static void main(String[] args) {
            //测试连接
            try {
                System.out.println(ConnectionUtil.getConnection());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    }

    第三步:启动本地服务端

     测试连接:

     连接成功没毛病

    下面使用浏览器访问:http://localhost:15672

    window下安装RabbitMQ教程:https://www.cnblogs.com/nongzihong/p/11578255.html

    第四步:生产者发送消息到队列

    package com.example.springboot_rabbitmq.simple;
    
    
    import com.example.springboot_rabbitmq.util.ConnectionUtil;
    import com.rabbitmq.client.Channel;
    import com.rabbitmq.client.Connection;
    public class Send {
    
        private final static String QUEUE_NAME = "q_test_01";
    
        public static void main(String[] argv) throws Exception {
            // 获取到连接以及mq通道
            Connection connection = ConnectionUtil.getConnection();
            // 从连接中创建通道
            Channel channel = connection.createChannel();
    
            // 声明(创建)队列
            channel.queueDeclare(QUEUE_NAME, false, false, false, null);
    
            // 消息内容
            String message = "Hello World!";
            channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
            System.out.println(" [x] Sent '" + message + "'");
            //关闭通道和连接
            channel.close();
            connection.close();
        }
    
    }

    管理工具中查看消息:

     

      第五步:消费者从队列中获取消息

    package com.example.springboot_rabbitmq.simple;
    
    import com.example.springboot_rabbitmq.util.ConnectionUtil;
    import com.rabbitmq.client.Channel;
    import com.rabbitmq.client.Connection;
    import com.rabbitmq.client.QueueingConsumer;
    
    public class Recv {
        private final static String QUEUE_NAME = "q_test_01";
    
        public static void main(String[] argv) throws Exception {
    
            // 获取到连接以及mq通道
            Connection connection = ConnectionUtil.getConnection();
            // 从连接中创建通道
            Channel channel = connection.createChannel();
            // 声明队列
            channel.queueDeclare(QUEUE_NAME, false, false, false, null);
    
            // 定义队列的消费者
            QueueingConsumer consumer = new QueueingConsumer(channel);
    
            // 监听队列
            channel.basicConsume(QUEUE_NAME, true, consumer);
    
            // 获取消息
            while (true) {
                QueueingConsumer.Delivery delivery = consumer.nextDelivery();
                String message = new String(delivery.getBody());
                System.out.println(" [x] Received '" + message + "'");
            }
        }
    
    }

     信息获取成功

     

  • 相关阅读:
    JavaScript的BOM编程,事件-第4章
    C#获取程序目录
    e3商城_day05
    第三届中国云计算用户大会笔记和心得
    Android应用源码 概览
    电脑用bat脚本给手机批量自动安装apk文件 autoInstall.bat
    网上的很多Android项目源码有用吗?Android开发注意的地方。
    Android 简历 怎么写? 月薪10K,20K+, 怎么拿到面试?
    android 职业 转行
    我的Python学习之路(2)
  • 原文地址:https://www.cnblogs.com/nongzihong/p/11927915.html
Copyright © 2011-2022 走看看