tnblog
首页
视频
资源
登录

Centos7搭建高可用的RabbitMq集群

7558人阅读 2021/2/8 22:05 总访问:3467007 评论:0 收藏:0 手机
分类: RabbitMq

Centos7搭建高可用的RabbitMq集群

环境准备

在三台CentOS7中搭建好Rabbitmq,如果不会搭建请参考:https://www.tnblog.net/hb/article/details/5594

添加域名地址

我们通过ifconfig查看这三台系统的ip地址,并将他们的关系列了一张表出来

系统名 描述
10.211.55.4 Master服务器,名称为rabbitmqmaster
10.211.55.6 Slave服务器,名称为slaverabbitmq2
10.211.55.5 Slave服务器,名称为slaverabbitmq1

所以我们将他们通过hosts的方式更好的做出区分。通过vim /etc/hosts的方式对每一台机器的末尾都添加如下代码(请注意这里要填写的是你自己的ip,添加好后不会立即生效需要执行reboot命令重启后才能生效)。

  1. 10.211.55.4 rabbitmqmaster
  2. 10.211.55.5 rabbitmqslave1
  3. 10.211.55.6 rabbitmqslave2

关闭防火墙

三台机子重启后我们会发现防火墙都是,开着的因此我们需要通过systemctl stop firewalld.service将防火墙给关闭掉。(我这里防火墙都管好了)

在UNIX系统上,cookie通常位于/var/lib/rabbitmq/.erlang.cookie(由服务器使用)和$HOME/.erlang.cookie(由CLI工具使用)中。请注意,由于$HOME的值因用户而异,因此有必要为每个将使用CLI工具的用户放置cookie文件的副本。这适用于非特权用户root。我这里呢是用的root用户所以Cookie/root/.erlang.cookie。(即使你把这个文件给删除了运行rabbitmq-server也会再次生成新的.erlang.cookie的)

我们在每一台机器上都去查看一下我们的.erlang.cookie发现他们并不相同,但Rabbitmq要求集群中的每个RabbitMQ节点都使用相同的.erlang.cookie值。所以我们这里将所有的节点修改为rabbitmqmastercookie

将三台系统上的.erlang.cookie的权限改为400

  1. chmod 400 /root/.erlang.cookie

集群管理

熟悉命令

在这之前我希望大家能了解一下如下这些命令,帮助你更好的掌握集群的管理。(在这里我们最好在源路径下进行操作)

命令 描述
rabbitmqctl cluster_status 查看集群状态
rabbitmqctl join_cluster rabbit@rabbit2 从集群中添加rabbit@rabbit2节点(默认是[disk]磁盘节点)
rabbitmqctl join_cluster --ram rabbit@rabbit1 从集群中删除rabbit@rabbit1内存[ARM]节点
rabbitmqctl forget_cluster_node rabbit@rabbit1 从集群中删除rabbit@rabbit1节点
rabbitmqctl change_cluster_node_type disc 在集群中把当前节点变成一个磁盘[disk]节点
rabbitmqctl change_cluster_node_type ram 在集群中把当前节点变成一个内存[ARM]节点
Rabbitmq-diagnostics check_running 运行状况检查
Rabbitmq-diagnostics ping 运行状况检查

启动Master节点

好接下来就好办事了。在rabbitmqmaster机器上在源目录下中通过./rabbitmq-server命令启动RabbitMq,然后打开另外一个窗口也在源目录下./rabbitmqctl cluster_status查看集群情况,以及集群节点的名称。

我们看到集群节点的名称为rabbit@rabbitmqmaster,但现在还没有node节点。

添加Slave节点

源目录下通过./rabbitmq-server命令启动RabbitMq。然后打开另外一个窗口执行./rabbitmqctl stop命令停止节点,执行./rabbitmqctl join_cluster rabbit@rabbitmqmaster加入到集群节点中去,最后通过./rabbitmqctl start启动Rabbitmq

然后按照如上步骤在每一台从机上面进行添加就好了。

添加用户

  1. # 创建一个用户名为bob,密码为bob的用户
  2. $ ./rabbitmqctl add_user bob bob
  3. # 设置用户权限为超级管理员
  4. $ ./rabbitmqctl set_user_tags bob administrator
  5. # 授权远程访问
  6. $ ./rabbitmqctl set_permissions -p / admin "." "." ".*"

最后在Web上查看

访问你的集群IP地址:{IP}:15672

我们发现他们都是disc磁盘存储,所以我们也可以通过命令来进行修改本机在集群中是什么样的存储类型

添加ARM存储

  1. ./rabbitmqctl stop
  2. ./rabbitmqctl join_cluster --arm rabbit@rabbitmqmaster
  3. ./rabbitmqctl start

修改本地为ARM存储

在确保该集群节点没有被关闭的情况下执行如下命令。

  1. ./rabbitmqctl stop
  2. ./rabbitmqctl change_cluster_node_type ram
  3. ./rabbitmqctl start


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

Centos7安装RabbitMq

CentOS7安装RabbitMq[TOC] 安装Erlang 通过访问Erlang下载链接进行下载:https://www.erlang.org/downloads 使用ro...

Centos7 设置.net core开机自启动服务

前言欢迎使用tnblog注意使用模板的时候选择保留原有内容哦,不然会不小心替换你的已经写好的内容哦。我希望有个如你一般的人...

Centos7 安装设置redis

还是很喜欢你,性情善良,待人真诚,像日光洒满天地,温柔惬意一、安装gcc依赖由于 redis 是用 C 语言开发,安装之前必先确...

Centos7 下安装redis 集群遇到的问题总结

1 、问题一 centos7 redis (error) NOAUTH Authentication required. 需要验证(设置的密码) redis-cli -h ip地址 -a ...

Centos7安装k8s(基于kubeadm)

Centos7安装k8s(基于kubeadm)[TOC] 下载相关包 链接:https://pan.baidu.com/s/1H9MuZsf28f_3uyVHBUS8jQ提取码:w9tv ...

解决 VMware Centos7 虚拟机 ping 通外网的问题

虚拟机上 ping 命令通不通外网的问题在 vi /etc/sysconfig/network-scripts/ifcfg-ens33 不要设置 DNS在 vi /etc/resolv.co...

virtualbox虚拟机Centos7设置固定IP,并保证主机宿主机通信与虚拟机访问外网

视频演示地址:https://www.tnblog.net/edu/play?des=sjqkecmklq视频演示 修改网卡设置(这样设置ip可以固定但是虚拟机无...

Centos7 安装k8s 1.25.0

Centos7 安装k8s 1.25.0[TOC] 安装包链接: https://pan.baidu.com/s/1H3M8fo3hh_qj4bJFifLRIQ 密码: psha安装containerdy...

新手 Centos7.9 安装 Jenkins

查看是否有Jenkinsrpm -qa |grep jenkins卸载rpm -e jenkins删除jenkins残留文件find / -iname jenkins | xargs -n 1000 rm...

​Windows下安装RabbitMq

跳过舞,祝大家新年快乐哇!1、下载安装erlang因为rabbitmq是基于erlang实现的所以需要先安装erlang打开网址https://www.er...

net core使用消息队列RabbitMq

使用NuGet下载rabbitmq客户端工具Install-Package RabbitMQ.Client -Version 3.6.5生产消息staticvoidMain(string[]args) ...

RabbitMq常用命令

rabbitmqctl environment:查询环境什么的例如这里可以看到rabbitmq的连接端口是5672,有时间我们想知道端口有没有改起什么...

修改RabbitMq的连接端口

rabbitmq的默认连接端口是5672,如果要修改的话,可以通过配置文件修改当然一般情况下都会遇到坑默认配置文件地址:安装目...

消息队列RabbitMq介绍

消息队列的一般作用 异步调用,延迟处理 应用解耦 流量消峰,处理高并发,秒杀等 说白了,消息队列就是一方生产消息,一方...

RabbitMq官网上六大版块之二(Direct类型交换机通过routingKey分类型输出)

其实rabbitmq,老师都说得差不多了,下面是老师的连接。http://www.tnblog.net/aojiancc2/article/UserCategory/134官网教...
这一世以无限游戏为使命!
排名
2
文章
634
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术