简单说下个人的理解,mq就是一个消息代理,负责异步消息转发,可以很大程度缓解服务器压力,并且防止服务器宕机影响业务等。
安装:
环境:centos7
1).首先需要安装erlang
#wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm#可能会报错,如果报错则# wget http://mirrors.sohu.com/fedora-epel/epel-release-latest-7.noarch.rpm#rpm -ivh epel-release-latest-7.noarch.rpm #rpm -ivh erlang-solutions-1.0-1.noarch.rpm #yum install erlang 安装过程中会有提示,一路输入“y”即可。 检查:#erl 返回的是22 查看安装路径:whereis erlang
2).上述完成后安装RabbitMQ:
注意,注意,注意,erlang与rabbitmq两者的版本要求,这个是rabbitmq官网列出的版本对应:https://www.rabbitmq.com/which-erlang.html
看清erlang的版本再下载,否则不兼容,下面是我遇到的问题,反正一开始不懂,谷歌了好久才发下原因:
Job for rabbitmq-server.service failed because the control process exited with error code. See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.
# rabbitmq-server start命令中的错误描述是no..忘了
开始正式安装,先下载rpm:
#wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-3.7.15-1.el7.noarch.rpm 下载完成后安装: #yum install rabbitmq-server-3.7.15-1.el7.noarch.rpm 检验是否安装成功: #systemctl start rabbitmq-server #systemctl status rabbitmq-server 也可以使用: #service rabbitmq-server start #service rabbitmq-server status 返回,Active: active (running)代表成功运行了 查看运行的端口,5672为rabbitmq的端口 #netstat -telnet 开机自启: #chkconfig rabbitmq-server on
3).启动插件进行web访问管理页面:
#rabbitmq-plugins enable rabbitmq_management 然后通过浏览器访问 http://ip:15672(我是用vbox安装,所以本机是ip远程登录) 输入默认用户名(guest)和默认密码(guest)访问web管理界面了。
这里有个问题,默认情况下,RabbitMQ的默认的guest用户只允许本机访问。如果想让guest用户能够远程访问的话,只需要将配置文件中的loopback_users列表置为空即可(或者改为自己的用户名即可),如下:
{loopback_users, [woaini]}
当然新增用户admin也可以做到远程访问。要记得打上tag、赋予admin最高权限哦。
附上关于RabbitMQ的一些基本操作:
$ sudo chkconfig rabbitmq-server on # 添加开机启动RabbitMQ服务 $ sudo /sbin/service rabbitmq-server start # 启动服务 $ sudo /sbin/service rabbitmq-server status # 查看服务状态 $ sudo /sbin/service rabbitmq-server stop # 停止服务 # 查看当前所有用户 $ rabbitmqctl list_users # 查看默认guest用户的权限 $ rabbitmqctl list_user_permissions guest # 由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 先删掉默认用户 $ rabbitmqctl delete_user guest # 添加新用户 $ rabbitmqctl add_user username password # 设置用户tag $ rabbitmqctl set_user_tags username administrator # 赋予用户默认vhost的全部操作权限 $ rabbitmqctl set_permissions -p / username ".*" ".*" ".*" # 查看用户的权限 $ rabbitmqctl list_user_permissions username