至于为什么要用消息队列 以及消息队列的优缺点可以看看我最新的文章。
第一步安装Erlang
由于RabbitMQ依赖Erlang, 所以需要先安装Erlang。
Erlang的安装方式大概有两种:
- 从Erlang Solution安装(推荐)
12345# 添加erlang solutions源$ wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm$ sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm$ sudo yum install erlang
- 从EPEL源安装(这种方式安装的Erlang版本可能不是最新的,有时候不能满足RabbitMQ需要的最低版本)
1234# 启动EPEL源$ sudo yum install epel-release# 安装erlang$ sudo yum install erlang
完成后安装RabbitMQ:
先下载rpm:
1 |
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm |
下载完成后安装:
1 |
yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm |
安装时如果遇到下面的依赖错误
1 2 |
Error: Package: socat-1.7.2.3-1.el6.x86_64 (epel) Requires: libreadline.so.5()(64bit) |
可以尝试先执行
1 2 |
$ sudo yum <span class="hljs-keyword">install socat </span> |
关于RabbitMQ的一些基本操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
$ sudo chkconfig rabbitmq-server on # 添加开机启动RabbitMQ服务 $ sudo /sbin/service rabbitmq-server start # 启动服务 $ sudo /sbin/service rabbitmq-server status # 查看服务状态 $ sudo /sbin/service rabbitmq-server stop # 停止服务 # 查看当前所有用户 $ sudo rabbitmqctl list_users # 查看默认guest用户的权限 $ sudo rabbitmqctl list_user_permissions guest # 由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 先删掉默认用户 $ sudo rabbitmqctl delete_user guest # 添加新用户 $ sudo rabbitmqctl add_user username password # 设置用户tag $ sudo rabbitmqctl set_user_tags username administrator # 赋予用户默认vhost的全部操作权限 $ sudo rabbitmqctl set_permissions -p / username ".*" ".*" ".*" # 查看用户的权限 $ sudo rabbitmqctl list_user_permissions username |
更多关于rabbitmqctl
的使用,可以参考帮助手册。
开启web管理接口
如果只从命令行操作RabbitMQ,多少有点不方便。幸好RabbitMQ自带了web管理界面,只需要启动插件便可以使用。
1 2 |
$ sudo rabbitmq-plugins <span class="hljs-built_in">enable rabbitmq_management </span> |
然后通过浏览器访问
输入用户名和密码访问web管理界面了。
配置RabbitMQ
关于RabbitMQ的配置,可以下载RabbitMQ的配置文件模板到/etc/rabbitmq/rabbitmq.config
, 然后按照需求更改即可。
关于每个配置项的具体作用,可以参考官方文档。
更新配置后,别忘了重启服务哦!
开启用户远程访问
默认情况下,RabbitMQ的默认的guest
用户只允许本机访问, 如果想让guest
用户能够远程访问的话,只需要将配置文件中的loopback_users
列表置为空即可,如下:
1 2 |
{<span class="hljs-selector-tag">loopback_users</span>, <span class="hljs-selector-attr">[]</span>} |
另外关于新添加的用户,直接就可以从远程访问的,如果想让新添加的用户只能本地访问,可以将用户名添加到上面的列表, 如只允许admin
用户本机访问。
1 2 |
{loopback_users, [<span class="hljs-string">"admin"]} </span> |
更新配置后,别忘了重启服务哦!
1 |
sudo /sbin/service rabbitmq-server status <span class="hljs-comment"># 查看服务状态</span> |
这里可以看到log文件的位置,转到文件位置,打开文件:
这里显示的是没有找到配置文件,我们可以自己创建这个文件
1 2 |
cd /etc/rabbitmq/ vi rabbitmq.config |
编辑内容如下:
1 |
[{rabbit, [{loopback_users, []}]}]. |
这里的意思是开放使用,rabbitmq默认创建的用户guest,密码也是guest,这个用户默认只能是本机访问,localhost或者127.0.0.1,从外部访问需要添加上面的配置。
保存配置后重启服务:
1 2 |
service rabbitmq-server stop service rabbitmq-server start |
此时就可以从外部访问了,但此时再看log文件,发现内容还是原来的,还是显示没有找到配置文件,可以手动删除这个文件再重启服务,不过这不影响使用
1 2 3 |
rm rabbit\@mythsky.log service rabbitmq-server stop service rabbitmq-server start |
注意:记得要开放5672和15672端口