CentOs7搭建rabbitmq集群

环境:三台centos7.4.1708_x86_64 机器
192.168.1.186、192.168.1.187、192.168.1.188

三台机器修改主机名
修改/etc/hostname 编辑文件内容为 s186
修改/etc/hosts 编辑文件内容为
127.0.0.1 localhost
192.168.1.186 s186
192.168.1.187 s187
192.168.1.188 s188
修改完后可能需要重启,查看有没有修改成功使用hostname来查看是无效的,要看命令提示符@符号后面的主机名是否更改了,比如像我的改好后应该显示成[root@s186 /var/lib/rabbitmq]# 而不是 [root@localhost /var/lib/rabbitmq]#
还有另外一种方式,可以参考https://my.oschina.net/mingshashan/blog/741988,这种方式也需要重启。

关闭三台机器的防火墙
systemctl stop firewalld.service

安装erlang
新建/etc/yum.repos.d/rabbitmq-erlang.repo文件,输入以下内容

# In /etc/yum.repos.d/rabbitmq-erlang.repo
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1

执行yum install erlang安装erlang

安装Rabbitmq Server
在http://www.rabbitmq.com/install-rpm.html#install-erlang 最上方点击下载rabbitmq-server-3.7.4-1.el7.noarch.rpm包
CentOs7搭建rabbitmq集群_第1张图片
下载完rpm包后执行安装

rpm --import https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc

yum install rabbitmq-server-3.7.4-1.el7.noarch.rpm

启动rabbitmq
rabbitmq-server -detached
查看rabbitmq状态
rabbitmqctl status

查看日志文件,找到home dir,.erlang.cookie文件在home dir目录下,将该目录下的.erlang.cookie文件拷贝到另外两台机器上。
CentOs7搭建rabbitmq集群_第2张图片

这里将是s186作为主节点,另外两个节点加入到s186中,在另外两台上执行
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@s186

集群搭建完毕后,查看集群状态

[root@s186 /var/lib/rabbitmq]#rabbitmqctl cluster_status 
Cluster status of node rabbit@s186 ...
[{nodes,[{disc,[rabbit@s186,rabbit@s187,rabbit@s188]}]},
{running_nodes,[rabbit@s188,rabbit@s187,rabbit@s186]},
{cluster_name,<<"rabbit@s186">>},
{partitions,[]},
{alarms,[{rabbit@s188,[]},{rabbit@s187,[]},{rabbit@s186,[]}]}]

启动web管理插件,三台机器都要启动
rabbitmq-plugins enable rabbitmq_management
访问 http://192.168.1.186:15672/

rabbitmq有个默认用户guest,密码也为guest,但是这个用户不允许远程登录,登录时会报如下错误
CentOs7搭建rabbitmq集群_第3张图片

可以使用命令行新增一个用户,用新用户登录

rabbitmqctl add_user root 123456
rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
rabbitmqctl set_user_tags root administrator

你可能感兴趣的:(消息中间件,rabbitmq,集群)