docker 安装 Rabbitmq 详解

打印 上一主题 下一主题

主题 1018|帖子 1018|积分 3054

        在平常的开发工作中,我们常常会使用到 rabbitmq,rabbitmq 主要可以举行应用解耦、异步通讯、流量削峰、负载均衡、消息持久化、死信队列等。比如商城系统,下单后,通过消息队列关照库存系统、积分系统、物流系统等。发送短信时通过消息队列异步关照,导入处理大文件时通过消息队列异步处理等。那么 docker 下如何安装 rabbitmq 呢?今天简单来总结下主要步调。
     1:拉取镜像

        通过命令 docker pull rabbitmq:版本号,拉取镜像,如果不输入则默认拉取最新版本的镜像。
        注意rabbitmq 镜像分为数字版本镜像和带 management  的镜像。带 management 的主要是集成了管理界面和相干插件,管理界面需要运行一个 Web 服务器来提供服务。开发、测试阶段,需要使用管理页面直观的看到消息发送及担当环境,使用 management 可以提高工作服从。数字版本镜像只包含 rabbitmq 的核心功能,不包含管理界面和相干插件,所以其资源占用相对较少。如果对资源占用有严酷的要求,且不需要可视化管理页面那就使用数字版本镜像。
        

     2:创建挂载目录

  1. # 数据持久化目录
  2. mkdir -p  /docker/rabbitmq/data:/var/lib/rabbitmq
  3. # 日志目录
  4. mkdir -p  /docker/rabbitmq/logs:/var/log/rabbitmq
复制代码
      3:启动 rabbitmq

      (1):新建 docker-compose.yml 文件

  1. rabbitmq:
  2.     # 带有管理界面的 rabbitmq 镜像
  3.     image: rabbitmq:management  
  4.     container_name: rabbitmq
  5.     ports:
  6.       # AMQP 协议端口
  7.       - "5672:5672"
  8.       # rabbitmq 管理界面端口
  9.       - "15672:15672"  
  10.     volumes:
  11.       # 数据持久化目录
  12.       - /usr/local/docker/rabbitmq/data:/var/lib/rabbitmq
  13.        # 日志目录
  14.       - /usr/local/docker/rabbitmq/logs:/var/log/rabbitmq
  15.     environment:
  16.       # 设置用户名
  17.       RABBITMQ_DEFAULT_USER: guest
  18.       # 设置密码
  19.       RABBITMQ_DEFAULT_PASS: 123456
  20.     restart: always
复制代码
      (2):启动 docker compose up rabbitmq

        启动报错,大抵意思就是打开log目录没有权限,报错如下: 

        解决方案为给 /docker/rabbitmq/logs 目录添加权限,命令为 chmod  777 /docker/rabbitmq/logs,实行完成后,可以查看 logs 目录的权限,查看命令为 ls -l (小写的L),查看如下:
        

        chmod 777 命令详解:chmod 用于修改文件大概目录访问权限。777 是采用数字的方式设置权限,第一个表示文件大概目录所有者(owner)权限、第二个表示所属组(group)权限、第三个表示其他用户(others)的权限。
        读取权限(r):对应值为4
        写入权限(w):对应值为2
        实行权限(x):对应值为1
        没有权限:对应值为0
        7 代表拥有读取权限(4)、写入权限(2)和实行权限(1),即 4+2+1=7,权限为 rwx,即目录所有者、所属组、其他用户都可以操作该目录中的文件,新增、删除、修改、读取文件。
        重新启动 rabbitmq,启动乐成,日志如下:
        

        可以使用 docker ps 查看启动的容器,如下:

     4:举行测试

        访问 ip地址 + 15672 端口,如 127.0.0.1::15672,访问乐成,登录页面如下:

        大概碰到的问题,访问差别,那么大概是防火墙端口的问题,大概是 15672 端口防火墙未开导致的,差别的内核版本有差别的对应命令,如果是 Centos 内核版本,查看版本可以用 cat /etc/os-release 命令,可以先查看 15672 端口是否开了防火墙,如果没开,则添加后重启防火墙,相干命令如下:
        查看防火墙开端口:firewall-cmd --zone=public --list-ports
        添加端口:firewall-cmd --zone=public --add-port=15672/tcp --permanent
        重启防火墙:firewall-cmd --reload
        以上为 docker 安装 rabbitmq 的基本步调,主要是 docker-compose.yml 文件的编写。配置挂载目录,可以防止重启 rabbitmq 的时候,配置丢失等。消息队列可以实现异步通讯、应用解耦、流量削峰等。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

反转基因福娃

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表