
RabbitMQ
本文主要參考官方安裝文檔
安裝Erlang
由于RabbitMQ依賴Erlang, 所以需要先安裝Erlang。
Erlang的安裝方式大概有兩種:
-
從Erlang Solution安裝(推薦)
# 添加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版本可能不是最新的,有時(shí)候不能滿足RabbitMQ需要的最低版本)
# 啟動EPEL源 $ sudo yum install epel-release # 安裝erlang $ sudo yum install erlang
安裝RabbitMQ
$ sudo rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
$ wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm # 下載RabbitMQ安裝包
$ sudo yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm
安裝時(shí)如果遇到下面的依賴錯(cuò)誤
Error: Package: socat-1.7.2.3-1.el6.x86_64 (epel)
Requires: libreadline.so.5()(64bit)
可以嘗試先執(zhí)行
$ sudo yum install socat
關(guān)于RabbitMQ的一些基本操作
$ sudo chkconfig rabbitmq-server on # 添加開機(jī)啟動RabbitMQ服務(wù)
$ sudo /sbin/service rabbitmq-server start # 啟動服務(wù)
$ sudo /sbin/service rabbitmq-server status # 查看服務(wù)狀態(tài)
$ sudo /sbin/service rabbitmq-server stop # 停止服務(wù)
# 查看當(dāng)前所有用戶
$ sudo rabbitmqctl list_users
# 查看默認(rèn)guest用戶的權(quán)限
$ sudo rabbitmqctl list_user_permissions guest
# 由于RabbitMQ默認(rèn)的賬號用戶名和密碼都是guest。為了安全起見, 先刪掉默認(rèn)用戶
$ sudo rabbitmqctl delete_user guest
# 添加新用戶
$ sudo rabbitmqctl add_user username password
# 設(shè)置用戶tag
$ sudo rabbitmqctl set_user_tags username administrator
# 賦予用戶默認(rèn)vhost的全部操作權(quán)限
$ sudo rabbitmqctl set_permissions -p / username ".*" ".*" ".*"
# 查看用戶的權(quán)限
$ sudo rabbitmqctl list_user_permissions username
更多關(guān)于rabbitmqctl的使用,可以參考幫助手冊。
開啟web管理接口
如果只從命令行操作RabbitMQ,多少有點(diǎn)不方便。幸好RabbitMQ自帶了web管理界面,只需要啟動插件便可以使用。
$ sudo rabbitmq-plugins enable rabbitmq_management
然后通過瀏覽器訪問
輸入用戶名和密碼訪問web管理界面了。
配置RabbitMQ
關(guān)于RabbitMQ的配置,可以下載RabbitMQ的配置文件模板到/etc/rabbitmq/rabbitmq.config, 然后按照需求更改即可。
關(guān)于每個(gè)配置項(xiàng)的具體作用,可以參考官方文檔。
更新配置后,別忘了重啟服務(wù)哦!
開啟用戶遠(yuǎn)程訪問
默認(rèn)情況下,RabbitMQ的默認(rèn)的guest用戶只允許本機(jī)訪問, 如果想讓guest用戶能夠遠(yuǎn)程訪問的話,只需要將配置文件中的loopback_users列表置為空即可,如下:
{loopback_users, []}
另外關(guān)于新添加的用戶,直接就可以從遠(yuǎn)程訪問的,如果想讓新添加的用戶只能本地訪問,可以將用戶名添加到上面的列表, 如只允許admin用戶本機(jī)訪問。
{loopback_users, ["admin"]}
更新配置后,別忘了重啟服務(wù)哦!
更多關(guān)于RabbitMQ的參考資料:
- RabbitMQ文檔
- RabbitMQ服務(wù)端配置
- rabbitmqctl手冊
- RabbitMQ web界面操作的命令行工具 rabbitmqadmin