rabbitmq3.8.2安装步骤及集群配置

1、安装erlang22.1

参考我之前的文章即可(https://www.jianshu.com/p/2187e03ad126
),由于最新版官网比较慢,特意准备了百度网盘链接:
链接: https://pan.baidu.com/s/1iYK7ejegd54H3wM1xXNDcw 提取码: gd8t

2、安装Rabbitmq 3.8

这一步主要参考官网的步骤,具体如下:

2.1 安装Erlang的环境-之前我们已经安装了,但是这里可以把rabbitmq的依赖包都安装了,如果跳过次步,将缺少依赖无法安装

创建 /etc/yum.repos.d/rabbitmq_erlang.repo 文件,内容如下:

[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[rabbitmq_erlang-source]
name=rabbitmq_erlang-source
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

安装erlang

yum install erlang -y
2.2 安装RabbitMQ服务

2.2.1 导入mq签名

rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc

2.2.2 添加rabbitmq.repo文件-此处可参看官网(https://www.rabbitmq.com/install-rpm.html
),我这边服务器是centos7,故rabbitmq.repo写入如下内容:

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1

2.2.3 安装rabbitmq服务

yum install rabbitmq-server -y

2.2.4 启动服务并设置开机自启动

systemctl start rabbitmq-server 
systemctl enable rabbitmq-server

2.2.5 开启管理界面
这一点 方便我们通过url访问查看运行情况,阿里云服务器安全里一定要开启15672端口

rabbitmq-plugins enable rabbitmq_management

在此我们还需要新增一个用户作为管理员
添加用户 -用户名 密码自己定

rabbitmqctl add_user username passwd

修改用户角色为管理员- 把下面username改成自己的用户名

rabbitmqctl set_user_tags username administrator

修改用户权限

rabbitmqctl set_permissions -p / username ".*" ".*" ".*"

自此 你可以通过ip:15672的方式访问RabbitMQ后台

2.3 rabbitmq集群 也是本文最重要的部分

目前我是有两台阿里云的,同一区的服务器,内网可访问。
2.3.1 修改hostname -服务器别名,方便我们后面两个mq服务连接
vi /etc/hosts 新增node1和node2 两个内网ip

172.26.184.179  node2
172.26.184.178  node1

原以为OK了,重启还是老样子,其实centos7 还提供了一步方法

hostnamectl set-hostname node2

直接修改成功了!
2.3.2 Erlang cookie设置,这里最坑,困了我好久,有必要总结一下
确保node1与node2两个服务器的.erlang.cookie保持一致
找到node1服务器的.erlang.cookie,位置如下:
/var/lib/rabbitmq/.erlang.cookie
然后复制内容到node2服务器对应的.erlang.cookie
修改好后,记得还原权限400

chmod 400 /var/lib/rabbitmq/.erlang.cookie

修改完后 一定要重启node1与node2服务器,这样修改才能生效。之前一直困扰我的node2连接不上node1的mq服务,一直提示cookie有问题,重启mq服务也没用,重启服务器 reboot后问题就可以解决,切莫少了这步。
出现的问题如下:
TCP connection succeeded but Erlang distribution failed
Authentication failed (rejected by the remote node), please check the Erlang cookie
那就执行重启命令吧!一切解决!

reboot

2.3.3 加入mq集群
node1 mq服务设置后台执行

rabbitmqctl stop
rabbitmq-server -detached

可以查看目前 node1的mq状态

rabbitmqctl cluster_status

node2 加入node1的MQ集群,关键时刻了!

rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app

配置好MQ集群后,可以在 node1、node2服务器上任意执行 rabbitmqctl cluster_status 来查看MQ集群是否配置成功
如下图所示:


查看MQ集群状态

这里就彻底成功了!现在直接通过url访问看一下是否正常可以显示两个mq服务:


集群界面

最后,祝大家安装一切顺利!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容