# 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** - 添加新授权用户(如下图所示): - ![RabbitMQ-Add-User](../images/RabbitMQ-Add-User-a-1.jpg) - 添加 Host(如下图所示): - ![RabbitMQ-Add-User](../images/RabbitMQ-Add-User-a-2.jpg) - 给添加的 Host 设置权限(如下图所示): - ![RabbitMQ-Add-User](../images/RabbitMQ-Add-User-a-3.gif) - 交换机绑定队列(如下图所示): - ![RabbitMQ-Bindings-Queue](../images/RabbitMQ-Bindings-Queue-a-1.gif)