【RocketMQ集群】Linux搭建RocketMQ双主双从集群

news2024/11/24 23:07:57

在当今大数据时代,消息队列系统成为了构建高可用、可扩展和可靠的分布式应用的重要组件之一。而Apache RocketMQ作为一款开源的分布式消息中间件,以其高吞吐量、低延迟和可靠性而备受青睐。为了满足大规模应用的需求,搭建RocketMQ集群是一种常见的部署方式。

本文将介绍如何在Linux系统上搭建RocketMQ双主双从集群。通过搭建双主双从集群,我们可以实现消息的高可用性和容错性,确保在单个Broker节点故障时仍能保持服务的正常运行。

首先,让我们了解一下RocketMQ集群的基本概念。RocketMQ集群由多个Broker节点组成,每个节点负责存储和传递消息。在双主双从集群中,我们将集群划分为两个主节点和两个从节点。主节点负责接收和处理消息的写入请求,而从节点则负责复制主节点的消息,并提供读取请求的服务。通过这种方式,我们可以实现消息的冗余备份和负载均衡,提高系统的可用性和性能。

这次我们要搭建的是双主双从集群异步除了这种集群官方还支持以下几种集群方式:

集群搭建方式冗余备份同步方式写入性能数据一致性可用性链接
单主单从集群【Spring Cloud Alibaba】Linux安装RocketMQ
多主多从集群
双主双从集群异步异步
双主双从集群同步同步

从上表可以看出,不同的集群搭建方式在冗余备份、同步方式、写入性能、数据一致性和可用性等方面存在差异。

  • 冗余备份:单主单从集群没有冗余备份,其他集群搭建方式都有冗余备份。
  • 同步方式:双主双从集群异步模式是异步复制,而双主双从集群同步模式和其他集群搭建方式是同步复制。
  • 写入性能:单主单从集群和多主多从集群具有较高的写入性能,而双主双从集群异步模式的写入性能也较高,但双主双从集群同步模式的写入性能较低。
  • 数据一致性:双主双从集群同步模式具有较高的数据一致性,其他集群搭建方式的数据一致性较低。
  • 可用性:多主多从集群和双主双从集群(异步和同步模式)具有较高的可用性,而单主单从集群的可用性较低。

需要根据具体的业务需求和性能要求来选择适合的集群搭建方式。如果对于消息的可用性要求较高,可以选择多主多从集群或双主双从集群。如果对于写入性能要求较高,可以选择单主单从集群或双主双从集群异步模式。如果对于数据一致性要求较高,可以选择双主双从集群同步模式。

这次的搭建我们需要准备以下的服务器环境:

ip角色名称
192.168.65.130Linux003
192.168.65.131Linux004
192.168.65.132Linux001
192.168.65.133Linux002

文章目录

    • 第一步,安装前的准备
    • 第二步,启动NameServer
    • 第三步,编辑双主节点配置文件
      • Linux001:
      • Linux002:
      • Linux003:
      • Linux004:
    • 第四步,启动Broker
      • Linux001:
      • Linux002:
      • Linux003:
      • Linux004:
    • 第五步,验证成果

第一步,安装前的准备

安装的这些步骤博主原来都写过。

安装jdk:Linux安装Java环境(OracleJDK)
安装并解压rockemq:【Spring Cloud Alibaba】Linux安装RocketMQ

关闭四台服务器的防火墙:

 systemctl stop firewalld.service 

第二步,启动NameServer

我们使用下面两台机器作为NameServer的集群

ip角色名称
192.168.65.132Linux001
192.168.65.133Linux002

两台机器执行一样的操作:

运行bin文件夹里面的mqnamesrv脚本

sh mqnamesrv

在这里插入图片描述
出现下面语句则启动成功

The Name Server boot success. serializeType=JSON

编写启动脚本后台运行

vim startupmqnamesrv.sh

添加内容如下

nohup sh bin/mqnamesrv &

运行启动脚本即可后台运行

在这里插入图片描述

在这里插入图片描述

第三步,编辑双主节点配置文件

配置文件描述分配
broker-a.propertiesBroker A主节点的配置文件,用于配置Broker A节点的相关参数和属性。Linux001
broker-a-s.propertiesBroker A从节点的安全配置文件,用于配置Broker A节点的安全相关参数和属性。Linux003
broker-b.propertiesBroker B主节点的配置文件,用于配置Broker B节点的相关参数和属性。Linux002
broker-b-s.propertiesBroker B从节点的安全配置文件,用于配置Broker B节点的安全相关参数和属性。Linux004

Linux001:

在这里插入图片描述

vim 2m-2s-async/broker-a.properties 

在这里插入图片描述
配置NameServer的地址为

namesrvAddr=192.168.65.132:9876;192.168.65.133:9876
  • brokerClusterName=DefaultCluster:指定Broker所属的集群名称,这里设置为"DefaultCluster"。
  • brokerName=broker-a:指定Broker的名称,这里设置为"broker-a"。
  • brokerId=0:指定Broker的唯一标识符,这里设置为0。
  • deleteWhen=04:指定消息文件的删除时间,这里设置为04,表示消息文件在存储超过4天后会被删除。
  • fileReservedTime=48:指定消息文件的保留时间,这里设置为48,表示消息文件在不活动超过48小时后会被删除。
  • brokerRole=ASYNC_MASTER:指定Broker的角色,这里设置为ASYNC_MASTER,表示该Broker是双主双从集群中的异步主节点。
  • flushDiskType=ASYNC_FLUSH:指定消息刷盘方式,这里设置为ASYNC_FLUSH,表示消息异步刷盘到磁盘。
  • namesrvAddr=192.168.65.132:9876;192.168.65.133:9876:指定NameServer的地址,这里设置了两个NameServer的地址,分别是192.168.65.132:9876和192.168.65.133:9876。

Linux002:

vim 2m-2s-async/broker-b.properties 

在这里插入图片描述

Linux003:

vim 2m-2s-async/broker-a-s.properties

在这里插入图片描述

Linux004:

vim 2m-2s-async/broker-b-s.properties

在这里插入图片描述
在这里插入图片描述

第四步,启动Broker

Linux001:

vim startupmqbroker.sh

在这里插入图片描述

nohup sh bin/mqbroker -c /opt/rocketmq/rocketmq-all-4.9.1-bin-release/conf/2m-2s-async/broker-a.properties &

在这里插入图片描述
启动

sh startupmqbroker.sh

查看是否启动成功

ps -ef | grep rocket

在这里插入图片描述

Linux002:

vim startupmqbroker.sh
nohup sh bin/mqbroker -c /opt/rocketmq/rocketmq-all-4.9.1-bin-release/conf/2m-2s-async/broker-b.properties &
sh startupmqbroker.sh
ps -ef | grep rocket

Linux003:

vim startupmqbroker.sh
nohup sh bin/mqbroker -c /opt/rocketmq/rocketmq-all-4.9.1-bin-release/conf/2m-2s-async/broker-a-s.properties &
sh startupmqbroker.sh
ps -ef | grep rocket

Linux004:

vim startupmqbroker.sh
nohup sh bin/mqbroker -c /opt/rocketmq/rocketmq-all-4.9.1-bin-release/conf/2m-2s-async/broker-b-s.properties &
sh startupmqbroker.sh
ps -ef | grep rocket

第五步,验证成果

使用mqadmin命令查看集群环境:

sh mqadmin clusterList -n 127.0.0.1:9876

在这里插入图片描述

  • Cluster Name:集群名称,这里是"DefaultCluster"。
  • Broker Name:Broker节点名称,这里有两个节点,分别是"broker-a"和"broker-b"。
  • BID:Broker节点的唯一标识符,0表示主节点,1表示从节点。
  • Addr:Broker节点的地址和端口号。
  • Version:RocketMQ的版本号,这里是"V491"。
  • InTPS(LOAD):消息的入站速率和负载情况。
  • OutTPS(LOAD):消息的出站速率和负载情况。
  • PCWait(ms):消息生产者和消费者的等待时间。
  • Hour:Broker节点的运行时间。
  • SPACE:消息存储空间的使用情况。

可以成功看到集群已经搭建成功!!

在本文中,我们详细介绍了如何在Linux上搭建RocketMQ双主双从集群。通过设置双主双从集群,我们可以实现高可用性、容错性、负载均衡和可扩展性。我们提供了逐步指南,包括下载和安装RocketMQ、配置集群、启动NameServer和Broker节点以及验证集群状态。我们还解释了双主双从集群与其他集群搭建方式的区别,以及不同模式的优势和适用场景。

搭建RocketMQ双主双从集群是构建可靠消息传递系统的重要一步。通过合理配置和调优,我们可以满足不同业务需求的可用性、一致性和性能要求。在实际应用中,我们应根据具体情况选择适合的集群搭建方式,并进行相应的配置和管理。

希望本文对大家在Linux上搭建RocketMQ双主双从集群有所帮助。如果大家有任何问题或疑问,请随时向我提问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1123310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

腾讯共享WiFi贴项目推广员是怎么收益的?

腾讯共享WiFi贴项目是一种非常普遍的商业共享模式,它为用户提供了便携、高速的无线网络服务。然而,人们对于这种项目是否真的能让共享WiFi贴推广员挣到钱还存在疑问。 腾讯共享WiFi贴扫码项目的运作方式是这样的:推广员将WiFi贴二维码粘贴到商…

“香蕉大王”的转型升级,能否扩大市场份额?

佳农食品控股 ( 集团 ) 股份有限公司,于2023年10月11日同海通证券签署上市辅导协议,计划登陆上交所主板。据了解这已经不是佳农食品第一次IPO了,2019 年,佳农集团曾向上交所递交过招股说明书,当时的招股书披露,佳农集团…

柴油发电机测试的工作原理

柴油发电机测试的工作原理是通过对柴油发电机进行一系列的性能测试和功能检查,以确保其正常运行和可靠性,通过加载发电机负载,测试发电机的额定功率、最大功率和稳定性。这可以通过连接负载设备,如电阻箱或电动机,来模…

03.MySQL事务及存储引擎笔记

事务 查看/设置事务 select autocommit; --查看当前数据库的事务状态,1表示开启,0表示关闭 set autocommit 0; --关闭自动事务提交采用关闭自动事务提交我们就可以手动进行事务提交,但是这种设置方式是对整个数据库起作用,一些可…

CMake学习(二):使用CMake构建包含其他库的C++项目

文章目录 一. 构建一个包含其他库的项目二. 构建过程1. 创建程序源文件2. 构建项目并编译源代码 附件 一. 构建一个包含其他库的项目 CMake学习(一):使用CMake构建一个简单的C项目 在这上一篇文章中,我们已经了解了如何使用CMake创建一个基本项目。在这…

华为数通方向HCIP-DataCom H12-831题库(多选题:21-40)

第21题 网络管理员A希望使用ACL匹配特定的路由条目,请问以下哪些路由条目将被图中的ACL规侧匹配? acl number 2000 rule 10 permit source 10.0.0.0 0.0.6.0A、10.0.0.1/32 B、10.0.0.0/24 C、10.0.1.0/24 D、10.0.2.0/24 答案: 解析: 通配符十进制6转换二进制为00000110,…

从Excel到智能化:智能报表的演进与未来发展趋势

摘要:本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 报表的迭代历程 报表工具的诞生与计算机技术的出现和信息技术的进步密不可分。下图是报…

javascript追加标签

页面样式(初始化): 开头追加标签: 结尾追加标签: 开头结尾追加标签: js代码: 样式展示: js追加标签

议题征集|The Open Group 2023亚太区年度颁奖盛典暨ESG架构年度大会诚邀演讲嘉宾!

每个人心中 都有各自对ESG架构管理的想象与理解 我们期待用一场汇聚 真知灼见与探索实践的盛典 重新定义架构的奇妙 ▼ 在全球可持续发展浪潮下,ESG目标(环境、社会和治理)的重要性愈发凸显。越来越多的企业认识到,以ESG为基…

第二十章 综合案例——基于多态的职工管理系统

1、管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 本教程主要利用C来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责 普通员工职责&…

Python —— hou.NetworkItem class

在一个network内,所有可见元素的基类; 此类没有方法,仅作为 hou.NetworkMovabelItem、hou.NodeConnection 基类存在,这两个子类在网络编辑器内均是可见的,是没有真正有意义的基类的;通过提供一个公共的基类…

如何避免阿里云对象储存OSS被盗刷

网站app图片的云端存储离不开对象存储oss,而最难为的问题就是app做的出名了,少不了同行的攻击,包含ddos,cc攻击以及oss外链被盗刷! 防盗链功能通过设置Referer白名单以及是否允许空Referer,限制仅白名单中的域名可以访…

【stm32】stm32MX定时器

一、在STM32MXCube中配置参数 利用TIM2实现间隔定时,每隔0.2秒将LED1的开关状态翻转 二、在函数里面写翻转 1、寻找定时中断的回调函数 2、htim->Instance指的是*htim里面的实例 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){if(htim->I…

聚观早报 | OPPO Find N3首发;AI带来新红利

【聚观365】10月23日消息 OPPO Find N3首发 AI带来新红利 丰田展示EPU纯电皮卡 MIUI官微改名为“小米澎湃 OS” 沙特汽车工厂建立 OPPO Find N3首发 近日OPPO正式发布Find N3折叠旗舰,首发搭载获得国密二级认证的汇顶科技独立安全芯片GSEA0。得益于该芯片拥有…

数组遍历里多个radio-group的问题解决

对于数组的遍历的单选组合问题如下 <view class"swiper-box-list"><view v-for"obj in firstTabsInfo" :key"obj.productId"><view class"secondProduct"><view class"menu-topic-bottom-color">&…

win11系统如何访问ie浏览器(不用额外安装IE浏览器,使用win11系统自带功能即可访问ie浏览器)

文章目录 一、背景二、win11系统访问IE浏览器步骤 一、背景 笔记本电脑win11系统中已经将IE浏览器抛弃了&#xff0c;默认安装的是Edge浏览器&#xff0c;我的电脑是华为 matebook 14s, 系统win11家庭中文版&#xff0c;已经不支持安装IE浏览器了&#xff0c;在有Edge浏览器的…

会声会影2023破解版安装包下载附带补丁注册机

提到视频剪辑软件&#xff0c;浮现在我们脑海的可能就是满屏的功能键和眼花缭乱的操作界面。类似pr、AE之类的视频软件&#xff0c;操作界面看起来十分复杂&#xff0c;很多用户上手困难。而会声会影界面简单&#xff0c;功能齐全&#xff0c;也能完成专业级的视频制作。操作简…

【C++】引用’‘的深入解析

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

QT QGLWidge

QGLWidget 学习 前言1.四边形 QGLWidget 2*32. 正方体 1*2前言 1.四边形 QGLWidget 2*3 坐标 效果 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清除屏幕和深度缓存glLoadIdentity(); //重置当前的模型观察矩阵glTranslate…

ElasticSearch安装、插件介绍及Kibana的安装与使用详解

ElasticSearch安装、插件介绍及Kibana的安装与使用详解 1.安装 ElasticSearch 1.1 安装 JDK 环境 因为 ElasticSearch 是用 Java 语言编写的&#xff0c;所以必须安装 JDK 的环境&#xff0c;并且是 JDK 1.8 以上&#xff0c;具体操作步骤自行百度 安装完成查看 java 版本 …