# RabbitMQ 安装和配置
## Docker 安装 RabbitMQ
- 官网镜像:
- 官网镜像说明:
- 运行:
```
docker run -d --name cloud-rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=adg123456 rabbitmq:3-management
```
- 参数解释:
- rabbitmq:3-management:只有带 management 后缀的才有 web 端管理入口
- 15672:表示 RabbitMQ 控制台端口号,可以在浏览器中通过控制台来执行 RabbitMQ 的相关操作。容器启动成功后,可以在浏览器输入地址:http://ip:15672/ 访问控制台
- 5672: 表示 RabbitMQ 所监听的 TCP 端口号,应用程序可通过该端口与 RabbitMQ 建立 TCP 连接,完成后续的异步消息通信
- RABBITMQ_DEFAULT_USER:用于设置登陆控制台的用户名,这里我设置 admin
- RABBITMQ_DEFAULT_PASS:用于设置登陆控制台的密码,这里我设置 admin
## RabbitMQ 说明
- MQ 全称为 Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。
- RabbitMQ 是一个在 AMQP 基础上完整的,可复用的企业消息系统。他遵循 Mozilla Public License 开源协议。
- RabbitMQ WIKI:
- RabbitMQ 百科:
- RabbitMQ 官网:
- RabbitMQ 官网下载:
- RabbitMQ 官网安装文档:
- RabbitMQ 文档:
- 优先:
- 次要:
## 基于 epel 源进行安装(优先)
- 来源:
```
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# 安装依赖环境erlang
yum install erlang -y
# 安装rabbitmq
yum install rabbitmq-server -y
```
## 本地安装
#### 本地安装 Erlang
- 有 EPEL 源的情况(需要安装的内容较多,宽带要能跟上):`sudo yum install erlang`
- RabbitMQ 官网提供 Erlang 安装包:
- 下载地址:
- 下载好之后,安装下面两个文件:
- `sudo yum localinstall -y esl-erlang_18.1-1~centos~6_amd64.rpm`
- `sudo yum localinstall -y esl-erlang-compat-18.1-1.noarch.rpm`
#### rpm 安装 RabbitMQ
- 此时(2016-04),最新版:**3.6.1**
- 安装:`rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc`
- 安装:`sudo yum install -y rabbitmq-server-3.6.1-1.noarch.rpm`
- 启动服务:
- 先看下自己的主机名:`hostname`,我的主机名是:**judasnHost2**
- 先修改一下 host 文件:`vim /etc/hosts`,添加一行:`127.0.0.1 judasnHost2`(必须这样做)
- 启动:`service rabbitmq-server start`,启动一般都比较慢,所以别急
- 停止:`service rabbitmq-server stop`
- 重启:`service rabbitmq-server restart`
- 设置开机启动:`chkconfig rabbitmq-server on`
## 配置
- 查找默认配置位置:`find / -name "rabbitmq.config.example"`,我这边搜索结果是:`/usr/share/doc/rabbitmq-server-3.6.1/rabbitmq.config.example`
- 复制默认配置:`cp /usr/share/doc/rabbitmq-server-3.6.1/rabbitmq.config.example /etc/rabbitmq/`
- 修改配置文件名:`cd /etc/rabbitmq ; mv rabbitmq.config.example rabbitmq.config`
- 编辑配置文件,开启用户远程访问:`vim rabbitmq.config`
- 在 64 行,默认有这样一句话:`%% {loopback_users, []},`,注意,该语句最后有一个逗号,等下是要去掉的
- 我们需要改为:`{loopback_users, []}`,
- 开启 Web 界面管理:`rabbitmq-plugins enable rabbitmq_management`
- 如果你是用 epel 安装的话,则是这样运行:`cd /usr/lib/rabbitmq/bin;./rabbitmq-plugins enable rabbitmq_management`
- 重启 RabbitMQ 服务:`service rabbitmq-server restart`
- 开放防火墙端口:
- `sudo iptables -I INPUT -p tcp -m tcp --dport 15672 -j ACCEPT`
- `sudo iptables -I INPUT -p tcp -m tcp --dport 5672 -j ACCEPT`
- `sudo service iptables save`
- `sudo service iptables restart`
- 浏览器访问:`http://192.168.1.114:15672`
默认管理员账号:**guest**
默认管理员密码:**guest**
- 添加新授权用户(如下图所示):
- 
- 添加 Host(如下图所示):
- 
- 给添加的 Host 设置权限(如下图所示):
- 
- 交换机绑定队列(如下图所示):
- 