Linux环境搭建Rabbitmq集群

前言

资料准备:
1、erlong安装包
2、rabbitmq安装包
3、两台Linux服务器(本篇文章用的CentOS7)
可以按照下面博客中步骤安装:Linux下安装Rabbitmq

环境准备

保证两台服务器安装rabbitmq成功,并且能够成功访问到管理台界面。
在两台Linux系统中修改hostname,分别为A和B,作为集群注册的主机名。
执行语句:

vi /etc/hosts

修改的文件内容如下:
A主机的主机名设置
在这里插入图片描述
B主机的主机名设置
在这里插入图片描述
设置成功后保存退出,重启服务器:

reboot

注意:2台Linux服务器需要完成同样的操作。关闭防火墙确保2台机器相互ping 同可以执行ping A 和ping B命令进行测试。
重启后执行ping命令,保证两台机器能够相互访问:
在这里插入图片描述
在这里插入图片描述

配置Cookie文件

Erlang Cookie是保证不同节点可以互相通信的秘钥,要保证集群中的不同节点互相通信必须共享相同的Erlang Cookie。

由于我安装rabbitmq是通过rpm进行安装的,所以默认的Erlang Cookie文件路径是:
/var/lib/rabbitmq/.erlang.cookie

cat /var/lib/rabbitmq/.erlang.cookie

在这里插入图片描述
要保证A服务器和B服务器的cookie文件值一致,有两种解决方式,可以选择使用vim进行编辑,也可以使用scp命令完成文件跨机器拷贝例如:

scp /var/lib/rabbitmq/.erlang.cookie 192.168.237.138:/var/lib/rabbitmq

注意:由于这个文件的权限是只读因此无论是使用vim还是scp来实现Cookie文件的同步都会失败,因此必须要修改这个文件的权限:

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

当Cookie文件同步完成以后再修改权限回只读:

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

组件集群

1、启动两个服务器的rabbitmq:

service rabbitmq-server start

访问浏览器,保证都能够出现rabbitmq界面:
在这里插入图片描述
2、查看集群状态确认节点

[root@B ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@B ...
[{nodes,[{disc,[rabbit@B]}]},
 {running_nodes,[rabbit@B]},
 {cluster_name,<<"rabbit@A">>},
 {partitions,[]},
 {alarms,[{rabbit@B,[]}]}]

此时还没有进行其他服务器节点的加入,所以目前显示的节点只有本服务器本身。

3、将某个RabbitMQ加入到某个服务器节点

rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@A
rabbitmqctl start_app

注意:
rabbitmqctl join_cluster rabbit@A 命令中的A为某个机器的hostname,在hostname为B的机器中执行这个命令。

4、再次查看集群状态确认节点

[root@B ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@B ...
[{nodes,[{disc,[rabbit@A,rabbit@B]}]},
 {running_nodes,[rabbit@A,rabbit@B]},
 {cluster_name,<<"rabbit@A">>},
 {partitions,[]},
 {alarms,[{rabbit@A,[]},{rabbit@B,[]}]}]

注意
当查看节点状态时发现2台机器的节点同时显示机表示集群搭建完成。

刷新页面:
在这里插入图片描述
至此集群搭建成功。

其他命令:
如果要将某个节点从集群中移除,使其变回独立节点,可以使用以下命令:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是用 Docker 搭建 RabbitMQ 集群的步骤: 1. 首先,确保已经安装了 Docker 和 Docker Compose。 2. 在本地创建一个新的文件夹,用于存储 RabbitMQ 的配置文件和数据。 3. 在该文件夹创建一个名为 docker-compose.yml 的文件,并将以下内容复制到该文件: ``` version: '3' services: rabbitmq-node1: image: rabbitmq:3.8-management-alpine hostname: rabbitmq-node1 environment: RABBITMQ_ERLANG_COOKIE: "secret_cookie" RABBITMQ_DEFAULT_USER: "admin" RABBITMQ_DEFAULT_PASS: "admin" ports: - "5672:5672" - "15672:15672" volumes: - ./data/node1:/var/lib/rabbitmq - ./config/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf networks: rabbitmq-network: aliases: - rabbitmq-node1 rabbitmq-node2: image: rabbitmq:3.8-management-alpine hostname: rabbitmq-node2 environment: RABBITMQ_ERLANG_COOKIE: "secret_cookie" RABBITMQ_DEFAULT_USER: "admin" RABBITMQ_DEFAULT_PASS: "admin" volumes: - ./data/node2:/var/lib/rabbitmq - ./config/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf networks: rabbitmq-network: aliases: - rabbitmq-node2 rabbitmq-node3: image: rabbitmq:3.8-management-alpine hostname: rabbitmq-node3 environment: RABBITMQ_ERLANG_COOKIE: "secret_cookie" RABBITMQ_DEFAULT_USER: "admin" RABBITMQ_DEFAULT_PASS: "admin" volumes: - ./data/node3:/var/lib/rabbitmq - ./config/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf networks: rabbitmq-network: aliases: - rabbitmq-node3 networks: rabbitmq-network: driver: bridge ``` 该文件定义了一个 RabbitMQ 集群,由三个节点组成。每个节点都有一个名称、一个主机名、一个环境变量(Erlang cookie、默认用户名和密码)、端口映射、数据卷和网络别名。该文件还定义了一个网络,用于连接三个节点。 4. 在该文件夹创建一个名为 config 的文件夹,并在其创建一个名为 rabbitmq.conf 的文件。将以下内容复制到该文件: ``` cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config cluster_formation.classic_config.nodes.1 = rabbit@rabbitmq-node1 cluster_formation.classic_config.nodes.2 = rabbit@rabbitmq-node2 cluster_formation.classic_config.nodes.3 = rabbit@rabbitmq-node3 ``` 该文件定义了 RabbitMQ 集群的配置,包括节点发现方式和节点列表。 5. 在该文件夹创建一个名为 data 的文件夹,用于存储 RabbitMQ 节点的数据。 6. 在终端导航到该文件夹,并运行以下命令: ``` 回复:搭建rabbitmq集群需要使用Docker,可以参考Docker官方文档:https://docs.docker.com/engine/examples/rabbitmq/。好的,以下是如何使用Docker搭建RabbitMQ集群的步骤: 1. 首先,确保您已经在本地安装了Docker,并且已经在命令行登录到了Docker。 2. 在命令行输入以下命令,以在Docker下载和运行RabbitMQ镜像: ``` docker run -d --name rabbitmq-node1 -p 5672:5672 -p 15672:15672 rabbitmq:3.8-management ``` 这将下载最新版本的RabbitMQ,并将其运行在Docker容器。这里我们指定了两个端口,一个用于AMQP通信(5672),另一个用于Web管理界面(15672)。 3. 等待RabbitMQ容器启动后,您可以使用以下命令在另一个容器运行第二个RabbitMQ节点: ``` docker run -d --name rabbitmq-node2 -p 5673:5672 -p 15673:15672 --link rabbitmq-node1:rabbit1 rabbitmq:3.8-management ``` 这将启动第二个RabbitMQ容器,并将其链接到第一个容器,以便它们可以互相通信。请注意,我们使用了不同的端口(5673和15673),以便避免与第一个节点的端口冲突。 4. 接下来,您可以使用以下命令启动第三个节点: ``` docker run -d --name rabbitmq-node3 -p 5674:5672 -p 15674:15672 --link rabbitmq-node1:rabbit1 --link rabbitmq-node2:rabbit2 rabbitmq:3.8-management ``` 同样,我们指定了不同的端口,并将此容器链接到前两个容器,以创建一个RabbitMQ集群。 5. 等待第三个节点启动后,您可以使用以下命令检查集群状态: ``` docker exec -it rabbitmq-node1 rabbitmqctl cluster_status ``` 这将显示集群所有节点的状态。 恭喜!您已经成功地在Docker部署了一个RabbitMQ集群

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值