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/ )
-
$ cd /usr/local/docker //进入文件目录
-
-
$ mkdir //创建文件
-
-
$ vi //打开文件写入要操作的指令
-
version: '3.1'
-
services:
-
rabbitmq:
-
restart: always
-
image: rabbitmq:management
-
container_name: rabbitmq
-
ports:
-
- 5672:5672
-
- 15672:15672
-
environment:
-
TZ: Asia/Shanghai
-
RABBITMQ_DEFAULT_USER: rabbit
-
RABBITMQ_DEFAULT_PASS: 123456
-
volumes:
-
- ./data:/var/lib/rabbitmq
将docker compose文件指令复制保存退出
执行docker compose启动命令
$ docker-compose up -d
执行命令查看是否启动成功
$ docker ps
看到已经启动成功
打开浏览器查看RabbitMQ页面(IP为虚拟机IP,端口为docker容器暴露端口. 账号密码为文件指令中自己设置的)
RabbitMQ安装完成