首页
视频
资源
登录
原
Centos7搭建高可用的RabbitMq集群
6282
人阅读
2021/2/8 22:05
总访问:
2609635
评论:
0
收藏:
0
手机
分类:
RabbitMq
![](https://img.tnblog.net/arcimg/hb/585b0f1ffa7f4c2095baa20c175b32a0.png) >#Centos7搭建高可用的RabbitMq集群 [TOC] 环境准备 ------------ tn>在三台`CentOS7`中搭建好`Rabbitmq`,如果不会搭建请参考:https://www.tnblog.net/hb/article/details/5594 ![](https://img.tnblog.net/arcimg/hb/7b35f5ac94124783b957fe751073ed67.png) 添加域名地址 ------------ tn>我们通过`ifconfig`查看这三台系统的`ip`地址,并将他们的关系列了一张表出来 | 系统名 | 描述 | | ------------ | ------------ | | `10.211.55.4` | 为`Master`服务器,名称为`rabbitmqmaster` | | `10.211.55.6` | 为`Slave`服务器,名称为`slaverabbitmq2` | | `10.211.55.5` | 为`Slave`服务器,名称为`slaverabbitmq1` | ![](https://img.tnblog.net/arcimg/hb/63780925e4b64d708e6bce12491f8290.png) tn>所以我们将他们通过`hosts`的方式更好的做出区分。通过`vim /etc/hosts`的方式对每一台机器的末尾都添加如下代码(请注意这里要填写的是你自己的`ip`,添加好后不会立即生效需要执行`reboot`命令重启后才能生效)。 ```bash 10.211.55.4 rabbitmqmaster 10.211.55.5 rabbitmqslave1 10.211.55.6 rabbitmqslave2 ``` ![](https://img.tnblog.net/arcimg/hb/377cc8b303c5405593ed029dfb345d35.png) 关闭防火墙 ------------ tn>三台机子重启后我们会发现防火墙都是,开着的因此我们需要通过`systemctl stop firewalld.service`将防火墙给关闭掉。(我这里防火墙都管好了) ![](https://img.tnblog.net/arcimg/hb/3f1e72d08ea94c30bd731d24572a71b9.png) 设置Erlang Cookie ------------ tn>在UNIX系统上,cookie通常位于`/var/lib/rabbitmq/.erlang.cookie`(由服务器使用)和`$HOME/.erlang.cookie`(由CLI工具使用)中。请注意,由于`$HOME`的值因用户而异,因此有必要为每个将使用CLI工具的用户放置cookie文件的副本。这适用于`非特权用户`和`root`。我这里呢是用的`root`用户所以`Cookie`在`/root/.erlang.cookie`。(即使你把这个文件给删除了运行`rabbitmq-server`也会再次生成新的`.erlang.cookie`的) ![](https://img.tnblog.net/arcimg/hb/c55977937ee8468ea756c1b3408025a5.png) tn>我们在每一台机器上都去查看一下我们的`.erlang.cookie`发现他们并不相同,但`Rabbitmq`要求集群中的每个RabbitMQ节点都使用相同的`.erlang.cookie`值。所以我们这里将所有的节点修改为`rabbitmqmaster`的`cookie`。 ![](https://img.tnblog.net/arcimg/hb/f775729a16d242c38c827f0c7eefd26e.png) 修改cookie权限 ------------ tn>将三台系统上的`.erlang.cookie`的权限改为`400`。 ```bash chmod 400 /root/.erlang.cookie ``` 集群管理 ------------ >### 熟悉命令 tn>在这之前我希望大家能了解一下如下这些命令,帮助你更好的掌握集群的管理。(在这里我们最好在源路径下进行操作) | 命令 | 描述 | | ------------ | ------------ | | `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节点 tn>好接下来就好办事了。在`rabbitmqmaster`机器上在`源目录下`中通过`./rabbitmq-server`命令启动`RabbitMq`,然后打开另外一个窗口也在`源目录下`用`./rabbitmqctl cluster_status`查看集群情况,以及集群节点的名称。 ![](https://img.tnblog.net/arcimg/hb/1108e9e140da4b27aeda0edfabf5c6a4.png) tn>我们看到集群节点的名称为`rabbit@rabbitmqmaster`,但现在还没有`node`节点。 >### 添加Slave节点 tn>在`源目录`下通过`./rabbitmq-server`命令启动`RabbitMq`。然后打开另外一个窗口执行`./rabbitmqctl stop`命令停止节点,执行`./rabbitmqctl join_cluster rabbit@rabbitmqmaster`加入到集群节点中去,最后通过`./rabbitmqctl start`启动`Rabbitmq` ![](https://img.tnblog.net/arcimg/hb/fa3828b850074d4da1974fb137e4de00.png) tn>然后按照如上步骤在每一台从机上面进行添加就好了。 ![](https://img.tnblog.net/arcimg/hb/ecadaca968cf44b5a7ac78df172d7d5b.png) >### 添加用户 ```bash # 创建一个用户名为bob,密码为bob的用户 $ ./rabbitmqctl add_user bob bob # 设置用户权限为超级管理员 $ ./rabbitmqctl set_user_tags bob administrator # 授权远程访问 $ ./rabbitmqctl set_permissions -p / admin "." "." ".*" ``` >### 最后在Web上查看 tn>访问你的集群IP地址:{IP}:15672 ![](https://img.tnblog.net/arcimg/hb/16f1818238c64ac29522f4fdc872dd8f.png) tn>我们发现他们都是`disc`磁盘存储,所以我们也可以通过命令来进行修改本机在集群中是什么样的存储类型 >### 添加`ARM`存储 ```bash ./rabbitmqctl stop ./rabbitmqctl join_cluster --arm rabbit@rabbitmqmaster ./rabbitmqctl start ``` >### 修改本地为`ARM`存储 tn>在确保该集群节点没有被关闭的情况下执行如下命令。 ```bash ./rabbitmqctl stop ./rabbitmqctl change_cluster_node_type ram ./rabbitmqctl start ``` ![](https://img.tnblog.net/arcimg/hb/2c3f3907ae6f4dc8a0fde5d05af4d7f5.png)
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}
尘叶心繁
这一世以无限游戏为使命!
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
.net后台框架
168篇
linux
17篇
linux中cve
1篇
windows中cve
0篇
资源分享
10篇
Win32
3篇
前端
28篇
传说中的c
4篇
Xamarin
9篇
docker
15篇
容器编排
101篇
grpc
4篇
Go
15篇
yaml模板
1篇
理论
2篇
更多
Sqlserver
4篇
云产品
39篇
git
3篇
Unity
1篇
考证
2篇
RabbitMq
23篇
Harbor
1篇
Ansible
8篇
Jenkins
17篇
Vue
1篇
Ids4
18篇
istio
1篇
架构
2篇
网络
7篇
windbg
4篇
AI
18篇
threejs
2篇
人物
1篇
嵌入式
2篇
python
13篇
HuggingFace
8篇
pytorch
9篇
opencv
6篇
Halcon
1篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2024
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术