Linux 下Docker安装使用RabbitMQ

时间:2024-11-15 20:15:42

RabbitMQ 的优点

  • 基于 ErLang 语言开发具有高可用高并发的优点,适合辑群服务器
  • 健壮、稳定、易用、跨平台、支持多种语言、文档齐全
  • 有消息确认机制和持久化机制,可靠性高
  • 开源

RabbitMQ 的概念

生产者和消费者

  • Producer:消息的生产者
  • Consumer:消息的消费者

Queue

  • 消息队列,提供了 FIFO 的处理机制,具有缓存消息的能力。RabbitMQ 中,队列消息可以设置为持久化,临时或者自动删除。
  • 设置为持久化的队列,Queue 中的消息会在 Server 本地硬盘存储一份,防止系统 Crash,数据丢失
  • 设置为临时队列,Queue 中的数据在系统重启之后就会丢失
  • 设置为自动删除的队列,当不存在用户连接到 Server,队列中的数据会被自动删除

RabbitMQ 的使用过程

  • 客户端连接到消息队列服务器,打开一个 Channel。
  • 客户端声明一个 ExChange,并设置相关属性。
  • 客户端声明一个 Queue,并设置相关属性。
  • 客户端使用 Routing Key,在 ExChange 和 Queue 之间建立好绑定关系。
  • 客户端投递消息到 ExChange。
  • ExChange 接收到消息后,就根据消息的 key 和已经设置的 binding,进行消息路由,将消息投递到一个或多个队列里

概述

我是基于 ubuntu Linux 16.04下 Docker 来安装 RabbitMQ

可以查看之前的文章了解Docker Compose 

docker-compose.yml

(基于root权限)首先选择一个目录创建文件  ( 例子测试目录为/usr/local/docker/ )

  1. $ cd /usr/local/docker //进入文件目录
  2. $ mkdir //创建文件
  3. $ vi //打开文件写入要操作的指令
  1. version: '3.1'
  2. services:
  3. rabbitmq:
  4. restart: always
  5. image: rabbitmq:management
  6. container_name: rabbitmq
  7. ports:
  8. - 5672:5672
  9. - 15672:15672
  10. environment:
  11. TZ: Asia/Shanghai
  12. RABBITMQ_DEFAULT_USER: rabbit
  13. RABBITMQ_DEFAULT_PASS: 123456
  14. volumes:
  15. - ./data:/var/lib/rabbitmq

将docker compose文件指令复制保存退出

 执行docker compose启动命令

$ docker-compose up -d

执行命令查看是否启动成功

$ docker ps

看到已经启动成功

 打开浏览器查看RabbitMQ页面(IP为虚拟机IP,端口为docker容器暴露端口. 账号密码为文件指令中自己设置的)

RabbitMQ安装完成