IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> RocketMQ 的双主双从集群搭建 -> 正文阅读

[大数据]RocketMQ 的双主双从集群搭建

1:介绍

1:本次搭建集群采用异步复制,主备有短暂消息延迟,毫秒级
2:即使磁盘损坏,消息丢失的非常少,且消息实时性不会受影响,因为Master 宕机后,消费者仍然可以从 Slave消费,此过程对应用透明。不需要人工干预。
3:Master 宕机,磁盘损坏情况,会丢失少量消息。这个是 rocket 3.5 之前都存在的,3.6之后可以支持主备切换,这个我们下次搭建。

2:准备

准备了 4台虚拟机,IP 地址准备设置成
192.168.10.151 (broker-a 主 )
192.168.10.152 (broker-a 从)
192.168.10.153 (broker-b 主 )
192.168.10.154 (broker-b 从 )

2.1 :准备虚拟机

如图,我们打开VMware,我们上次装的rocketmq 等等都放在 Master 中,我们根据 master 克隆四台机器出来:
在这里插入图片描述
克隆的时候,机器需要处于 未运行 状态
在这里插入图片描述
点击下一页
在这里插入图片描述

继续下一页
在这里插入图片描述
下一页
在这里插入图片描述
修改名称,我这边依次起名叫 rocketmq-151,rocketmq-152,rocketmq-153,rocketmq-154

2.2:修改虚拟机的ip地址

四台虚拟机创建好,分别启动。
首先对于 rocketmq-151 ,打开后进入命令行界面,输入账号密码
在这里插入图片描述
先删除网卡设备,防止连不上网

rm  -rf  /etc/udev/rules.d/70-persistent-net.rules

在这里插入图片描述
然后 执行下面命令,找到 网卡信息

cd /etc/sysconfig/network-scripts/
ls

在这里插入图片描述
可以看到我的 叫做 ifcfg-ens33,网上很多的都是 ifcfg-eth0,还是要根据自己机器的实际展示为准,进入文件,修改 IP 地址,修改成 192.168.10.151

vi  ifcfg-ens33

在这里插入图片描述

修改完成后,执行重启命令

// 更新网络,刷新 IP 地址
service network restart
reboot

重启之后,通过 xshell 继续连接,注意 IP地址是修改好的
四台机器依次执行上面的操作,只是 ip 分别不同,这点千万注意。

2.3:启动 rocketmq 的 NameServer

我们上面通过 xshell 连接过了,四个节点都要启动, 因此我们可以利用 xshell 同时给很多会话发送相同命令的特性来同时启动 4 个节点的 NameServer

Xshell同时向多个会话发送指令的方法链接: https://blog.csdn.net/weixin_30552635/article/details/95206740

我们进入到 rocketmq 文件夹下的 bin 目录下,后台启动 NameServer(多开端点容易乱)

cd /usr/local/rocketmq-4.7.1/bin
ls
./mqnamesrv &

在这里插入图片描述

可以看到,四台机器的 NameServer 分别启动了

2.4:配置配置文件

首先对于 rocketmq-151,我们来到它存放配置文件的地方

cd ../
cd /conf
ls

在这里插入图片描述

可以看见,rocketmq 官方其实已经给我们准备一些配置文件,我们配置 2主2从异步双写的这个,打开这个文件夹
在这里插入图片描述
名字我们一开始就是一样的,所以就不换了

2.4.1:配置rocketmq-151 是 broker-a 的主节点

按照计划,rocketmq-151 是 broker-a 的主节点,那么我们打开 broker-a.properties文件

vi   broker-a.properties

继续配置,添加对 nameServer 的配置

// 四个节点的都要写上,nameServer之间互不通信,需要分别注册
namesrvAddr=192.168.10.151:9876;192.168.10.152:9876;192.168.10.153:9876;192.168.10.154:9876

在这里插入图片描述
添加完成后,启动 rocketmq-151 的 broker

./mqbroker -c ../conf/2m-2s-async/broker-a.properties 

在这里插入图片描述

2.4.2:配置rocketmq-152 是 broker-a 的从节点

按照计划,rocketmq-152 是 broker-a 的从节点,那么我们打开 broker-a-s.properties文件

vi   broker-a-s.properties

继续配置,添加对 nameServer 的配置

// 四个节点的都要写上,nameServer之间互不通信,需要分别注册
namesrvAddr=192.168.10.151:9876;192.168.10.152:9876;192.168.10.153:9876;192.168.10.154:9876

添加完成后,添加完成后,启动 rocketmq-152 的 broker

./mqbroker -c ../conf/2m-2s-async/broker-a-s.properties 

在这里插入图片描述

2.4.3:配置rocketmq-153 是 broker-b 的主节点

按照计划,rocketmq-153 是 broker-b 的主节点,那么我们打开 broker-b.properties文件

vi   broker-b.properties

继续配置,添加对 nameServer 的配置

// 四个节点的都要写上,nameServer之间互不通信,需要分别注册
namesrvAddr=192.168.10.151:9876;192.168.10.152:9876;192.168.10.153:9876;192.168.10.154:9876

添加完成后,添加完成后,启动 rocketmq-153 的 broker

./mqbroker -c ../conf/2m-2s-async/broker-b.properties 

在这里插入图片描述

2.4.4:配置rocketmq-154 是 broker-b 的从节点

按照计划,rocketmq-154 是 broker-b 的从节点,那么我们打开 broker-b-s.properties文件

vi   broker-a-s.properties

继续配置,添加对 nameServer 的配置

// 四个节点的都要写上,nameServer之间互不通信,需要分别注册
namesrvAddr=192.168.10.151:9876;192.168.10.152:9876;192.168.10.153:9876;192.168.10.154:9876

添加完成后,添加完成后,启动 rocketmq-154 的 broker

./mqbroker -c ../conf/2m-2s-async/broker-b-s.properties 

在这里插入图片描述

2.5 :启动控制台,查看集群情况

我们通过 xshell 随便连接 四台机器中的一个,我这边连接 rocketmq-151,java-jar 启动控制台的springboot 项目,并通过浏览器去访问

// 这里也可以随意制定nameServer中的一个,我这里不指定,到控制台去输入
java -jar rocketmq-console-ng-1.0.1.jar

在这里插入图片描述
能看到,启动成功,端口是 8080,我们到浏览器去访问
在这里插入图片描述
点击 OPS,输入一个nameServer,查看集群情况,注意nameServer 的端口号是 9876,也要输入
在这里插入图片描述

我们点击 Cluster ,查看集群情况
在这里插入图片描述
至此。两主两从的异步双写集群搭建完毕。
注意:虽然前面说过了,这里还是要提示一下,一旦Master 宕机,磁盘损坏情况,会丢失少量消息。这个是 rocket 3.5 之前都存在的,3.6之后可以支持主备切换,这个我们下次搭建

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-16 13:11:15  更:2022-02-16 13:13:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:10:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码