Centos Docker安装Rabbitmq及常见问题

Posted licbc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos Docker安装Rabbitmq及常见问题相关的知识,希望对你有一定的参考价值。

目录

正常步骤

下载镜像

执行如下命令搜索rabbitmq官方镜像,找到命令的镜像

sudo docker search rabbitmq

也可以直接执行如下命令拉取最新镜像

sudo docker pull rabbitmq:3.8.3

启动容器

执行命令:

sudo docker run -d --name rabbitmq3.8.3 -p 5672:5672 -p 15672:15672 -v /home/deployer/rabbitmq:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=testvhost  -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:3.8.3-alpine

打开控制台

sudo docker exec -it $container_id /bin/bash
# $container_id 替换为真实的容器id
# 进入容器后,执行如下命令,打开控制台插件
rabbitmq-plugins enable rabbitmq_management
# 显示如下内容,代表成功
The following plugins have been enabled:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
started 3 plugins.

安装延迟消息插件

rabbitmq默认不支持延迟消息队列特性,需要安装插件支持
否在使用项目中使用到延迟消息队列时会报如下错:

unknown exchange type 'x-delayed-message'

下载延迟消息队列插件

安装rabbitmq_delayed_message_exchange 插件 (1M以内)
官方下载:https://www.rabbitmq.com/community-plugins.html
网盘下载:链接:https://pan.baidu.com/s/14RCDTqpOewF2SW_mr2EfOA
提取码:1ej4

安装延迟消息队列插件

将下载的插件拷贝到docker宿主机 /home/deployer/rabbitmq 目录下
登录rabbitmq容器

# 登录容器
sudo docker exec -it $container_id /bin/bash
# 查询插件安装位置
find / -name plugins 
# 进入插件目录
cd /opt/rabbitmq/plugins
# 拷贝插件到该目录
cp /var/lib/rabbitmq/rabbitmq_delayed_message_exchange-3.8.0.ez .
# 启动插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
# 执行下面命令检查插件是否已安装
rabbitmq-plugins list

省事步骤

从网盘下载镜像(100M左右) rabbitmq-3.8.3

镜像已开启管理台、已安装延迟消息插件

链接:https://pan.baidu.com/s/1WGTCZqUAnWqqNmACQ98Gsw 
提取码:t4pj 
复制这段内容后打开百度网盘手机App,操作更方便哦

导入镜像

将下载的rabbitmq.tar 上传到操作系统,执行如下命令导入:

sudo docker load -i rabbitmq.tar

查看导入的镜像image

sudo docker images |grep rabbitmq 

启动容器

执行如下命令启动窗口

sudo docker run -d --name rabbitmq3.8.3 -p 5672:5672 -p 15672:15672 -v /home/deployer/rabbitmq:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=testvhost  -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:3.8.3-alpine

控制台

浏览器访问rabbitmq控制台
http://localhost:15672

用户权限

一般安装默认会创建一个admin 和 guest 账户,guest账号限制本地登录,如果远程登录可能会报错

org.springframework.amqp.AmqpConnectException: 
java.net.ConnectException: Connection refused: connect

admin 为管理员权限,建议登录web管理台创建一个新的用户,供应用程序使用

如下所示创建新用户

单击用户名进入用户权限设置页面

设置用户对默认virtual host 的访问权限

正常SpringBoot集成Rabbitmq配置

srping:
  rabbitmq:
    host: 192.168.31.179
    username: test
    password: test
    port: 5672
    publisher-confirms: true
    publisher-returns: true
    connection-timeout: 1500000
    virtual-host: testvhost
    listener:
      simple:
        acknowledge-mode: manual
        #消费者的最小数量
        concurrency: 1
        #消费者的最大数量
        max-concurrency: 1
        #是否支持重试
        retry:
          enabled: true

以上是关于Centos Docker安装Rabbitmq及常见问题的主要内容,如果未能解决你的问题,请参考以下文章

CentOS中利用Docker安装RabbitMQ

centos 7 。 docker 安装rabbitmq 以及集权搭建

CentOS7.X环境下基于docker安装部署RabbitMQ集群

RabbitMQ简单介绍及常见面试题

Centos Docker安装Rabbitmq及常见问题

Centos Docker安装Rabbitmq及常见问题