栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

RabbitMQ搭建集群服务例子(VMware中使用3台CentOS8作为服务器)

RabbitMQ搭建集群服务例子(VMware中使用3台CentOS8作为服务器)

一、 环境准备 1、 3台Linux服务器(CentOS8)

可以使用克隆方式:https://blog.csdn.net/qq_43987149/article/details/121921302

2、 服务器安装好RabbitMQ(包含erlang)

安装参考链接:https://blog.csdn.net/qq_43987149/article/details/121781133

二、 开始搭建 1、 修改主机名

每一台主机都修改,使用以下命令打开hostname文件,修改主机名

vim /etc/hostname
#分别修改为 node1、node2、node3
#修改完要重启系统,才能生效
#使用hostname查看主机名
hostname
2、 配置各个主机的hosts文件,让各个节点都能互相识别对方
vim /etc/hosts

每一个中添加如下内容:前面的是每一台主机IP ,后面的是每一台主机名
这里特别要注意,IP记得改为主机名对应的,我之前就是这里忘记修改,导致第5、6、步一直不能使用rabbitmqctl命令,一直报错
192.168.78.128 node1
192.168.78.129 node2
192.168.78.130 node3

3、 以确保各个节点的cookie文件使用的是同一个值

在node1主机上执行远程操作命令

scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/.erlang.cookie

示例:完整的执行命令如下:过程中需要输入yes和'密码'

[root@node1 wen]# scp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/.erlang.cookie
The authenticity of host 'node3 (192.168.78.128)' can't be established.
ECDSA key fingerprint is SHA256:7wi4IUUjPySm1XM44yU7xIU1fsnQiHLIfDITKd+XS/w.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'node3' (ECDSA) to the list of known hosts.
root@node3's password: 
.erlang.cookie                                                                  100%   20    37.2KB/s   00:00    
[root@node1 wen]#
4、 启动RabbitMQ服务,顺带启动Erlang虚拟机和RbbitMQ应用服务(在三台节点上分别执行以下命令)
rabbitmq-server -detached
5.0 没有报错可跳过这一步执行第5、6、两步可能报错

5.0.1 解决办法:这个是需要把前一个也就是node1的对应的25672,4369端口号开放,或者直接关闭防火墙

unable to connect to epmd (port 4369) on node3: address (cannot connect to host/port)
suggestion: check if host 'node2' resolves, is reachable and ports 25672, 4369 are not blocked by firewall

5.0.2 这里是一执行 rabbitmqctl [其他命令] 相关的命令就报错
解决办法是查看 hosts文件的IP和主机名是否对应修改成功 vim /etc/hosts
https://blog.csdn.net/qq_43987149/article/details/121937973

Error: unable to perform an operation on node 'rabbit@node2'. Please see diagnostics information and suggestions below.
TCP connection succeeded but Erlang distribution failed
5、 在主机2执行
rabbitmqctl stop_app
#(rabbitmactl stop会将Erlang虚拟机关闭,rabbitmactl stop_app只关闭RabbitMQ服务)
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app(只启动应用服务)
6、 在主机3执行
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node2
rabbitmqctl start_app
7、 查看集群状态
rabbitmqctl cluster_status
8、 为集群设置用户(在任意一台主机上操作)
#查看用户
rabbitmqctl list_users
#添加用户和密码
rabbitmqctl add_user admin 1234
#设置用户角色为管理员
rabbitmqctl set_user_tags admin administrator
#添加用户权限: 用户user_admin具有/vhost1这个virtual host中所有资源的配置、写、读权限
# set_permissions [-p ]    
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
9、 外部登录任意主机IP检查是否成功(这里注意15672端口号要开放)
http://192.168.78.130:15672/

10、 解除集群节点

node2或node3执行

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
rabbitmqctl cluster_status

node1上执行(如果是解除node3,下面的node2改成node3)

rabbitmqctl forget_cluster_node rabbit@node2
其他 参考视频:https://www.bilibili.com/video/BV1cb4y1o7zz?p=84
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/662975.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号