Linux Centos 环境下搭建RocketMq集群(双主双从)

1、下载rocketmq的包

下载 | RocketMQ

2、配置环境变量

1、编辑环境变量文件:vim /etc/profile2、加入如下配置:
#rocketmq 4.9.8
ROCKETMQ_HOME=/home/rocketmq/rocketmq-4.9.8
export PATH=${ROCKETMQ_HOME}/bin:${PATH}3、刷新配置:source /etc/profile

3、修改相关参数

修改bin目录下的runserver.sh如下:

修改bin目录下的runbroker.sh如下:

 

4、启动和停止nameserver

1、启动命令
nohup sh /bin/mqnamesrv &2、查看日志
tail -f ~/logs/rocketmq/namesrv.log3、停止
./mqshutdown namesrv

5、启动和停止broker

1、启动命令
nohup sh /bin/mqbroker autoCreateTopicEnable=true &2、查看日志
tail -f ~/logs/rocketmq/broker.log3、停止
./mqshutdown broker

6、rocketmq集群配置

worker1 只需要启动nameserver即可

worker2中配置两个文件:broker-a.properties、broker-b-s.properties

worker3中配置两个文件:broker-b.properties、broker-a-s.properties

四个配置文件如下:

broker-a.properties

#所属集群名字,名字一样的节点就在同一个集群内
brokerClusterName=rocketmq-cluster
brokerIP1=192.168.10.200
brokerIP2=192.168.10.200
#broker名字,名字一样的节点就是一组主从节点。
brokerName=broker-a
#brokerid,0就表示是Master,>0的都是表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=192.168.10.200:9876;192.168.10.201:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/rocketmq-4.9.8/data
#commitLog 存储路径
storePathCommitLog=/home/rocketmq-4.9.8/data/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/home/rocketmq-4.9.8/data/consumequeue
#消息索引存储路径
storePathIndex=/home/rocketmq-4.9.8/data/index
#checkpoint 文件存储路径
storeCheckpoint=/home/rocketmq-4.9.8/data/checkpoint
#abort 文件存储路径
abortFile=/home/rocketmq-4.9.8/data/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

broker-b-s.properties

#所属集群名字,名字一样的节点就在同一个集群内
brokerClusterName=rocketmq-cluster
brokerIP1=192.168.10.200
#broker名字,名字一样的节点就是一组主从节点。
brokerName=broker-b
#brokerid,0就表示是Master,>0的都是表示 Slave
brokerId=100
#nameServer地址,分号分割
namesrvAddr=192.168.10.200:9876;192.168.10.201:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=11011
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/rocketmq-4.9.8/dataslave
#commitLog 存储路径
storePathCommitLog=/home/rocketmq-4.9.8/dataslave/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/home/rocketmq-4.9.8/dataslave/consumequeue
#消息索引存储路径
storePathIndex=/home/rocketmq-4.9.8/dataslave/index
#checkpoint 文件存储路径
storeCheckpoint=/home/rocketmq-4.9.8/dataslave/checkpoint
#abort 文件存储路径
abortFile=/home/rocketmq-4.9.8/dataslave/storeSlave/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

broker-b.properties

#所属集群名字,名字一样的节点就在同一个集群内
brokerClusterName=rocketmq-cluster
brokerIP1=192.168.10.201
brokerIP2=192.168.10.201
#broker名字,名字一样的节点就是一组主从节点。
brokerName=broker-b
#brokerid,0就表示是Master,>0的都是表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=192.168.10.200:9876;192.168.10.201:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/rocketmq-4.9.8/data
#commitLog 存储路径
storePathCommitLog=/home/rocketmq-4.9.8/data/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/home/rocketmq-4.9.8/data/consumequeue
#消息索引存储路径
storePathIndex=/home/rocketmq-4.9.8/data/index
#checkpoint 文件存储路径
storeCheckpoint=/home/rocketmq-4.9.8/data/checkpoint
#abort 文件存储路径
abortFile=/home/rocketmq-4.9.8/data/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

 

broker-a-s.properties

#所属集群名字,名字一样的节点就在同一个集群内
brokerClusterName=rocketmq-cluster
brokerIP1=192.168.10.201
#broker名字,名字一样的节点就是一组主从节点。
brokerName=broker-a
#brokerid,0就表示是Master,>0的都是表示 Slave
brokerId=100
#nameServer地址,分号分割
namesrvAddr=192.168.10.200:9876;192.168.10.201:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=11011
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/rocketmq-4.9.8/dataslave
#commitLog 存储路径
storePathCommitLog=/home/rocketmq-4.9.8/dataslave/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/home/rocketmq-4.9.8/dataslave/consumequeue
#消息索引存储路径
storePathIndex=/home/rocketmq-4.9.8/dataslave/index
#checkpoint 文件存储路径
storeCheckpoint=/home/rocketmq-4.9.8/dataslave/checkpoint
#abort 文件存储路径
abortFile=/home/rocketmq-4.9.8/dataslave/storeSlave/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

启动顺序为:先启动3台服务器的nameserver,再启动worker2和worker3中的broker.

进入worker2,进入rocketmq的安装目录,执行一下两行,
nohup bin/mqbroker -c conf/broker-a.properties autoCreateTopicEnable=true &
nohup bin/mqbroker -c conf/broker-b-s.properties autoCreateTopicEnable=true &
查看日志:
tail -f ~/logs/rocketmq/broker.log进入worker3,进入rocketmq的安装目录,执行一下两行,
nohup bin/mqbroker -c conf/broker-b.properties autoCreateTopicEnable=true &
nohup bin/mqbroker -c conf/broker-a-s.properties autoCreateTopicEnable=true &

7、rockermq-console图形化管理界面

下载地址:
拉取rocketmq-console的源代码
github克隆项目到本地:git clone 
https://github.com/apache/rocketmq-externals.gitgitee克隆项目到本地:git clone 
https://gitee.com/zjj19941/rocketmq-externals-master.git修改启动端口
对rocketmq-console模块进行打包将打好的jar包上传至对应的服务器
maven打包命令:mvn package -DskipTests使用nohup对jar包进行后台启动:nohup java -jar rocketmq-console-ng-xxx.jar &如果没配置地址的话,可以在启动命令那儿加以下配置:
// > /home/soft/rocketmq/rocketmq-console.log 表示将标准输出重定向到指定的日志文件中;
// 2>&1 表示将标准错误输出也重定向到标准输出中;
nohup java -jar rocketmq-console-ng-1.0.0.jar --rocketmq.config.namesrvAddr='ip1:9876;ip2:9876' > /home/soft/rocketmq/rocketmq-console.log 2>&1 &

 浏览器访问localhost:端口,效果如下:

集群信息如下:

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

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

相关文章

OpenStack入门体验及一键部署

OpenStack入门体验 技能目标: 了解云计算概念 了解OpenStack 了解OpenStack的构成 会OpenStack单机环境一键部署 从控制台认识OpenStack各项功能会 通过OpenStack控制台创建云主机 什么是云计算 云计算(cloudcomputing)是一种基于网络的超级计算模式&a…

51单片机STC89C52RC——2.1 独立按键控制LED亮灭

目录 目的 一,STC单片机模块 二,独立按键 2.1 独立按键位置 2.2 独立按键电路图 三,创建Keil项目 四,代码 五,代码编译、下载到51单片机 六,效果 目的 当独立K1按键按下时LED D1 点亮&#x…

一般简单的功能使用GIS 服务器工具还需要进行扩展开发吗?

有网友困惑怎么使用了我们的 GIS 服务器工具,一些简单的功能需不需要对服务器进行扩展开发?下面我们首先看一下标准GIS WEB服务器例如GEOSERVER,QGISSERVER、GIS数据快捷共享发布工具(建立自己的地图网站)及其它一些商…

【Unity】加速Unity编辑器模式启动时间

Unity每次Play之后都会Reload Script Assemblies(重新加载脚本程序集)。 如果我们没有使用很多Assem,则并不需要在播放前重新编译。 可以在设置中将此事的重新编译关闭。 在Edit > Project Settings > Editor 面板中 找到Enter Play…

OpenGL3.3_C++_Windows(3)

GLSL Shader基础 Shader(把输入转化为输出,运行在GPU上):首先要声明版本,有各自的入口点main()顶点数据上限:16个包含4分量:16 * 4 64个分量向量:容器vec。使用.x、.y、.z和.w&am…

算法设计与分析 实验2 分治法求最近点对

目录 一、实验目的 二、实验概述 三、实验内容 四、问题描述 1.实验基本要求 2.实验亮点 3.实验说明 五、算法原理和实现 1. 算法原理和实现 实验流程 数据生成 数据去重 2. 蛮力法 算法原理 实验伪代码 时间复杂度分析 3. 分治法 算法描述 算法内容 实验流…

C# Winform DPI自适应方案

Winform窗体随着屏幕的DPI缩放,会引起窗体变形及字体变形。 1.设置窗体和自定义用户控件的AutoScaleMode为None 实现目标:禁止窗体因为字体大小缩放变形 因为显示的高分屏,然后操作系统的设置了字体缩放引起的。窗体默认的AutoScaleMode = Font,控件会因为高分屏自动缩放…

Apollo9.0 PNC源码学习之Control模块(三)—— 基于双环PID的纵向控制

本文将对Apollo的纵向控制器进行讲解,看完本文,你将会对百度Apollo的纵向控制有更深的理解 前面文章: Apollo9.0 PNC源码学习之Control模块(一) Apollo9.0 PNC源码学习之Control模块(二) 1 纵向…

Qt QListView自定义树状导航控件

大部分的软件都有多个页面,这时候就需要一个导航栏控件,通过在导航栏中选择某一栏,同时显示对应的页面。 本文代码效果如下: 本文的导航栏控件基于大佬 feiyangqingyun 的导航栏控件博客Qt/C编写自定义控件46-树状导航栏_qt之实现…

28.启动与暂停程序

上一个内容:27.设计注入功能界面 以它 27.设计注入功能界面 的代码为基础进行修改 点击添加游戏按钮之后就把游戏启动了 CWndINJ.cpp文件中修改: void CWndINJ::OnBnClickedButton1() {// TODO: 在此添加控件通知处理程序代码/*ExeLst.InsertItem(0, L…

Boom 3D软件下载及安装教程

简介: Boom 3D是适用于Mac和Windows系统的专业音效增强软件,旨在通过播放器,媒体或流媒体服务等介质,在不同类型的耳机上以3D环绕效果播放媒体内容。您无需使用昂贵的耳机或其他附加环绕音效增强器即可感受3D环绕音乐。 安 装 包…

如何进行LLM大模型推理优化

解密LLM大模型推理优化本质 一、LLM推理的本质以及考量点 LLM推理聚焦Transformer架构的Decoder以生成文本。过程分两步:首先,模型初始化并加载输入文本;接着,进入解码阶段,模型自回归地生成文本,直至满足…

MPLS VPN一

R1为客户,现在进行一些基本配置,来确保可以通路由 先启动OSPF跑通 在R3上 等一会 现在启动MPLS 对R3 对R4 然后在R2上 再把接口划到空间里面 原来的IP在公网里面,被清除了 然后再配置接口 查看 对R1(相当于客户) …

计算机网络 —— 一文搞懂TCP/UDP

传输层:TCP/UDP 1. TCP1.1 TCP连接管理1.2 TCP首部格式 2. UDPUDP首部格式 3. 其他传输层协议3.1 SCTP3.2 DCCP 传输层实现源端主机和目标端主机上对等实体间会话,TCP/IP中两个代表性的传输层协议分别是TCP和UDP,两者均使用端口来标识传输数据…

商品搬家到抖店

使用的工具为 张飞搬家,登录上去 张飞搬家 1 复制商品的网址 商品链接复制过去后,点击下面的开始批量复制 2 检查修改商品信息 价格啊、图片啊、各种商品属性啊,检查下,不合适的修改和补充 3 开始搬家 4 查看商品 打开抖店后…

LogicFlow 学习笔记——1. 初步使用 LogicFlow

什么是 LogicFlow LogicFlow 是一个开源的前端流程图编辑器和工作流引擎,旨在帮助开发者和业务人员在网页端创建、编辑和管理复杂的业务流程和工作流。它提供了一个直观的界面和强大的功能,使得设计和管理工作流变得更加高效和便捷。 官网地址&#xff…

计算机网络:网络层 - IP数据报的转发

计算机网络:网络层 - IP数据报的转发 基于终点转发最长前缀匹配二叉线索树路由表特殊路由特定主机路由默认路由 IP多播 基于终点转发 路由器转发报文时,是通过报文中的目的地址字段来转发的,也即是说路由器只知道终点的IP地址,根…

GiantPandaCV | 提升分类模型acc(三):优化调参

本文来源公众号“GiantPandaCV”,仅用于学术分享,侵权删,干货满满。 原文链接:提升分类模型acc(三):优化调参 一、前言 这是本系列的第三篇文章,前两篇GiantPandaCV | 提升分类模型acc(一):B…

微服务feign组件学习

手写不易,对您有帮助。麻烦一键三连。也欢饮各位大料指正,交流。 微服务feign组件学习 1.概念1.1 feign 概念1.2 Ribbon概念 2.使用2.1 集成feign2.1.1 maven依赖2.1.2 项目结构 2.2 使用2.2.1 定义feign接口2.2.2 消费端服务调用2.2.3 消费端扫描feig…

单通道电容感应芯片XW01T用于水位检测、人体感应

概述 XW01T SOT23-6封装和丝印 XW01T 是一个单通道电容感应芯片,广泛应用于水位检测,人体感应等应用场合。 特点 做非接触式液位检测和长按功能检测 自动环境校准 内置按键消抖,无需软件再消抖 嵌入共模干扰去除电路 每秒按键反应速度可达 20 次 上电立刻判断按键有效状态 按…