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

Docker安装RabbitMQ和Idea的HelloWord入门

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker安装RabbitMQ和Idea的HelloWord入门

Docker安装RabbitMQ和HelloWord入门 1.安装

1.docker search rabbitmq //搜索镜像

2.docker pull rabbitmq

//默认安装最新的版本 如果不安装最新版加上版本号即可

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

映射端口 名字自己随意取

4.docker ps

5.进入容器

docker exec -it 镜像ID /bin/bash

6.进入镜像后 开启 web 管理插件

rabbitmq-plugins enable rabbitmq_management

7.ctrl+p+q退出当前容器 让容器后台运行

8.浏览器进入 IP替换成自己服务器或者linux的 账号和密码默认都是guest

http://IP:15672/

9.如果登录进不去可能是防火墙拦截了,需要开放15672端口,自己的虚拟机可以直接关闭防火墙

2.创建新用户

1.进入容器

docker exec -it 镜像ID /bin/bash

2.添加账号 admin和123456对应账号密码 随意设置

创建账号
rabbitmqctl add_user admin123456

3.给admin设置管理员角色

rabbitmqctl set_user_tags admin administrator

4.给admin设置权限

语法 :set_permissions [-p ]

命令:rabbitmqctl set_permissions -p “/” admin “." ".” “.*” //给admin用户设置所有权限

//用户 user_admin 具有/vhost1 这个 virtual host 中所有资源的配置、写、读权限

设置完可以去浏览器登录

当然也可以在web界面直接设置

5.查看当前用户和角色

docker exec -it 镜像ID /bin/bash

rabbitmqctl list_users

  1. 重置命令
    1.关闭应用的命令为

rabbitmqctl stop_app

2.清除的命令为

rabbitmqctl reset

3.重新启动命令为

rabbitmqctl start_app

3.RabbitMQ的HelloWord

1.导入依赖

    
    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    8
                    8
                
            
        
    
    
        
        
            com.rabbitmq
            amqp-client
            5.8.0
        
        
        
            commons-io
            commons-io
            2.6
        
        
            org.slf4j
            slf4j-simple
            1.7.25
            compile
        
    

2.编写入门程序(如果是云服务器,记得开启5672端口,不然连接不上)

1.生产者

public class Producer {
    //队列名称
    public static final String QUEUE_NAME ="hello";

    //发消息、
    public static void main(String[] args)  {
        //创建一个链接工厂
        ConnectionFactory factory = new ConnectionFactory();
        //工厂IP 链接RabbitMQ的队列
        factory.setHost("自己的服务器IP");
        //用户名
        factory.setUsername("admin");
        //密码
        factory.setPassword("123");
        factory.setPort(5672); //默认端口

        try {
            //创建链接
            Connection connection = factory.newConnection();
            //获取信道   交换机可以省略 采用默认的交换机
            //channel 实现了自动 close 接口 自动关闭 不需要显示关闭
            Channel channel = connection.createChannel();
        
            channel.queueDeclare(QUEUE_NAME,true,false,false,null);
            //发消息
            String message = "Hello RabbitMQ2";
        
            channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
            System.out.println("消息发送完成");
        } catch (IOException e) {
            e.printStackTrace();
        } catch (TimeoutException e) {
            e.printStackTrace();
        }
    }
}

2.消费者

public class Consumer {
    //队列名称
    public static final String QUEUE_NAME ="hello";

    //接受消息
    public static void main(String[] args) throws IOException, TimeoutException {
        //创建一个链接工厂
        ConnectionFactory factory = new ConnectionFactory();
        //工厂IP 链接RabbitMQ的队列
        factory.setHost("自己的服务器IP");
        //用户名
        factory.setUsername("admin");
        //密码
        factory.setPassword("123");
        factory.setPort(5672); //默认端口
        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);
    }
}

3.发送消息后即可在web上看到消息

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

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

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