栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

RabbitMQ——使用Docker安装和Java整合Demo

RabbitMQ——使用Docker安装和Java整合Demo

1. 安装RabbitMQ

直接使用docker镜像安装RabbitMQ即可。

docker search RabbitMQ

直接选择stars最多的,同时也是最新版本的。

直接拉下来镜像即可。

docker pull RabbitMQ


运行启动RabbitMQ将镜像端口号映射到5672

docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq

进入容器安装RabbitMQ的web访问插件

    查找容器镜像
docker ps
    进入容器
docker exec -it 镜像ID /bin/bash
    安装web访问插件
rabbitmq-plugins enable rabbitmq_management
    退出容器
    Ctrl+q+p

访问测试:
直接访问:ip:15672
默认用户名密码都是guest

安装&运行完毕。

2. Java整合RabbitMQ

首先新建一个普通的maven项目。

2.1 添加依赖
    指定jdk编译版本
    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    8
                    8
                
            
        
    
    RabbitMQ客户端依赖
        
            com.rabbitmq
            amqp-client
            5.8.0
        
    引入文件流依赖
        
            commons-io
            commons-io
            2.11.0
        
2.2 整合测试 2.2.1 生产者代码
public class Producer {

    // 队列名称
    private static final String QUEUE_NAME = "hello";

    public static void main(String[] args) throws Exception {
        // 创建连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        
        // 配置连接IP
        factory.setHost("1");

        // 配置RabbitMQ用户名和密码
        factory.setUsername("guest");
        factory.setPassword("guest");

        // 建立连接
        Connection connection = factory.newConnection();

        // 获取信道
        Channel channel = connection.createChannel();

        // 产生队列
        
        channel.queueDeclare(QUEUE_NAME,false,false,false,null);


        // 消息体
        String msg = "Hello RabbitMQ";

        // 发送消息
        
        channel.basicPublish("",QUEUE_NAME,null,msg.getBytes());

        System.out.println("----------==========发送完毕==========----------");
    }
}

运行之后控制台会输出发送完毕

在RabbitMQ的web端可以看到消息信息

2.2.2 消费者代码
public class Consumer {

    // 队列名称
    private static final String QUEUE_NAME = "hello";

    public static void main(String[] args) throws Exception {
        // 创建连接工厂
        ConnectionFactory factory = new ConnectionFactory();

        // 配置连接IP
        factory.setHost("1");

        // 配置RabbitMQ用户名和密码
        factory.setUsername("guest");
        factory.setPassword("guest");

        // 建立连接
        Connection connection = factory.newConnection();

        // 创建信道
        Channel channel = connection.createChannel();

        // 声明:接收消息回调
        DeliverCallback deliverCallback = (consumerTag,message) -> {
            System.out.println(new String(message.getBody()));
        };

        // 声明:取消消费回调
        CancelCallback cancelCallback = consumerTag -> {
            System.out.println("消费者取消消费");
        };

        // 消费消息
        
        channel.basicConsume(QUEUE_NAME,true,deliverCallback,cancelCallback);
    }
}

运行之后控制台会打印出消息

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/753609.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号