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 中所有资源的配置、写、读权限

设置完可以去浏览器登录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VE7RmvTQ-1640225107812)(RabbitMQ/image-20211223094453233.png)]

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-itEMniqD-1640225107813)(RabbitMQ/image-20211223094604783.png)]

5.查看当前用户和角色

docker exec -it 镜像ID /bin/bash

rabbitmqctl list_users

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VXJvYny5-1640225107813)(RabbitMQ/image-20211223094804470.png)]

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

rabbitmqctl stop_app

2.清除的命令为

rabbitmqctl reset

3.重新启动命令为

rabbitmqctl start_app

3.RabbitMQ的HelloWord

1.导入依赖

    <!--指定 jdk 编译版本-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <!--rabbitmq 依赖客户端-->
        <dependency>
            <groupId>com.rabbitmq</groupId>
            <artifactId>amqp-client</artifactId>
            <version>5.8.0</version>
        </dependency>
        <!--操作文件流的一个依赖-->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.25</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

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();
        /*
            生成一个队列
            1.队列名称
            2.队列里面的消息是否持久化(磁盘中) 默认情况消息存储在内存中
            3.改队列是否只供一个消费者进行消费,是否进行消息共享,
                true:只能一个消费者消费
                false:可以多个消费者消费
            4.是否自动删除 最后一个消费者端开连接后 该队列是否自动删除 如果是true自动删除 false不自动删除
         */
            channel.queueDeclare(QUEUE_NAME,true,false,false,null);
            //发消息
            String message = "Hello RabbitMQ2";
        /*
            1.发送一个消费者
            2.路由的Key值是哪个 本次是队列的名称
            3.其他参数信息
         */
            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("消息被中断" );
        };

        /*
            消费者消费消息
            1.消费哪个队列
            2.消费成功之后是否要自动应答
                true 自动应答
                false 手动应答
            3.消费者接收消息的回调
            4.消费者取消消费的回调
         */
        channel.basicConsume(QUEUE_NAME,true,deliverCallback,cancelCallback);
    }
}

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nSuxvFS9-1640225107814)(RabbitMQ/image-20211223095539504.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y37E3g20-1640225107814)(RabbitMQ/image-20211223095603218.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iKnOwmd1-1640225107815)(RabbitMQ/image-20211223095355716.png)]

可以使用以下步骤来使用Docker安装RabbitMQ: 1. 首先,可以通过运行命令`docker search rabbitmq`来查看可用的RabbitMQ镜像仓库。 2. 在Docker官网的RabbitMQ镜像页面(https://hub.docker.com/_/rabbitmq?tab=tags)上可以找到更多版本的镜像信息。 3. 创建并运行RabbitMQ容器。你可以使用命令`docker run`来创建一个新的RabbitMQ容器,并指定所需的参数,例如版本、端口等。 如果你希望在Docker启动时自动启动RabbitMQ容器,可以使用命令`docker update rabbitmq --restart=always`来设置自动重启。 所以,使用Docker安装RabbitMQ的步骤如下: 1. 运行命令`docker search rabbitmq`来查看可用的RabbitMQ镜像仓库。 2. 在Docker官网的RabbitMQ镜像页面上查找并选择合适的镜像版本。 3. 使用命令`docker run`创建并运行RabbitMQ容器,指定所需的参数,例如版本、端口等。 4. 如果需要在Docker启动时自动启动RabbitMQ容器,可以使用命令`docker update rabbitmq --restart=always`设置自动重启。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [docker安装RabbitMQ](https://blog.csdn.net/qq_34775355/article/details/108305396)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【Docker】之安装 RabbitMQ](https://blog.csdn.net/aiwangtingyun/article/details/123616947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙龙龙呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值