RabbitMq官方安装指南:http://www.rabbitmq.com/install-rpm.html#downloads
其它博客参考:https://www.jianshu.com/p/ce725e41edab
之前尝试过其它方式安装过,但是安装失败了,尝试几次修复,都失败了。
失败原因和erlang环境有关。最后我还是选择了yum安装方式。
一、安装Erlang环境:
1,RabbitMq和Erlang兼容性指南
正式环境安装时,必须认真的看下,避免以后的麻烦:http://www.rabbitmq.com/which-erlang.html
部分兼容性如下图所示,可以用谷歌网页翻译一下:
2,Erlang下载官网(访问可能需要vpn支持):https://packagecloud.io/rabbitmq/erlang
页面部分截图如下
3,我要安装3.7.8的RabbitMq,按照兼容性要求,个人选择了erlang-21.0.9-1.el7.centos.x86_64.rpm
4,安装erlang:
yum install erlang-21.0.9-1.el7.centos.x86_64.rpm
二、安装RabbitMq
1,下载rabbitmq:rabbitmq-server-3.7.8-1.el7.noarch.rpm
下载路径:http://www.rabbitmq.com/install-rpm.html#downloads
2,安装rabbitmq:
yum install rabbitmq-server-3.7.8-1.el7.noarch.rpm
安装过程中可能会出现,没有socat依赖的错误
解决办法如下:
(1)执行如下操作
yum -y install epel-release
(2)再执行如下操作
yum -y install socat
安装完成。
三、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 # 停止服务
# 查看当前所有用户
$ 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
四、开启web管理接口
$ sudo rabbitmq-plugins enable rabbitmq_management
通过浏览器访问:http://localhost:15672。就可以看到mq的后台管理页面了。
默认账户密码:guest/guest
五、RabbitMQ的配置文件
官方配置文件的简绍:https://www.rabbitmq.com/configure.html#configuration-files
rabbitmq.conf配置模板:https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.conf.example
advanced.conf配置模板:https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/advanced.config.example
下载下来放到:/etc/rabbitmq/rabbitmq.conf目录下。重启mq就行。
一般情况下配置mq使用sysctl格式的命令行(比如上面用到的:rabbitmqctl)就行,
或者在配置文件里rabbitmq.conf修改相关属性即可。
按照官方说法,advanced.conf是对rabbitmq.conf和sysctl命令行的扩充。
即当rabbitmq.conf和sysctl命令行,不太好使用时,就可以用advanced.conf来进行扩展。
下面是官方对advanced.conf的部分解释说明:
Some configuration settings are not possible or are difficult to configure using the sysctl format. As such, it is possible to use an additional config file in the Erlang term format (same as rabbitmq.config). That file is commonly named advanced.config. It will be merged with the configuration provided in rabbitmq.conf.
我将配置文件放到/etc/rabbitmq/rabbitmq.conf后,启动rabbitmq失败。
错误日志:
Error: unable to perform an operation on node 'rabbit@localhost'. Please see diagnostics information and suggestions below.
导致这个错误的原因应该是:我没有开放15672的端口,由于我是本地测试,我直接关闭了centos的防火墙。
验证rabbitmq.conf有没有生效,rabbitmq.conf部分修改如下:
-----------------上文省略---------------------------------------------------------
## Uncomment the following line if you want to allow access to the
## guest user from anywhere on the network.
# loopback_users.guest = false
loopback_users.guest = none
## TLS configuration.
##
## Related doc guide: http://rabbitmq.com/ssl.html.
##
# ssl_options.verify = verify_peer
# ssl_options.fail_if_no_peer_cert = false
# ssl_options.cacertfile = /path/to/cacert.pem
# ssl_options.certfile = /path/to/cert.pem
# ssl_options.keyfile = /path/to/key.pem
-----------------下文省略---------------------------------------------------------
重启RabbitMq之后,非本地也可以用guest登录了。如果再次删掉那行,重启之后,你会发现guest账户被自动退出。
最后,由于本人能力有限,写错的地方,请多多指正。