rocketmq搭建2m2s踩坑版

2023-11-02

搭建过程中遇到了些问题百度了很久终于东拼西凑成功解决了。看看成果。
console完美运行。
在这里插入图片描述
代码生产消费也是正常的。
在这里插入图片描述
言归正传开始搭建.

0.服务器环境介绍

没有将master与对应的slave安装在同一个节点,如果在一个节点挂了master就挂了slave

IP 角色 架构
192.168.40.129 nameserver, brokerserver master1,slave2
192.168.40.132 nameserver, brokerserver master2,slave1

1.在linux中解压

rocketmq-all-4.3.2-bin-release.zip

可以在这里下载
https://590m.com/f/24811911-503010440-b1e10b
(访问密码:5812)

2.修改RocketMq虚拟机内存

启动Broker内存不足将失败,编辑两个配置文件,修改JVM内存大小。

编辑runbroker.sh,runserver.sh修改默认JVM大小
vi bin/runbroker.sh
#找到并修改成以下内容
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

vi bin/runserver.sh
#找到并修改成以下内容
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m 
-XX:MaxMetaspaceSize=320m" 

3.关闭防火墙,所有端口都开放

关闭防火墙
systemctl stop firewalld.service
#查看防火墙状态
firewall-cmd --state
#禁止firewall开机启动
systemctl disable firewalld.service
```bash

4.配置环境变量

vi /etc/profile
shift+g 跳至文件最后一行

#set rocketmq
ROCKETMQ_HOME=/root/rocketmq-all-4.3.2-bin-release
PATH=$PATH:$ROCKETMQ_HOME/bin 
export ROCKETMQ_HOME PATH

配置立刻生效

source /etc/profile

5.修改broker配置文件

在192.168.40.129机器中
配置broker-a的从节点

vi $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a.properties
    #所属集群名字
    brokerClusterName=rocketmq-cluster
    #broker名字,名字可重复,为了管理,每个master起一个名字,他的slave同他,eg:Amaster叫broker-a,他的slave也叫broker-a
    brokerName=broker-a
    #0 表示 Master,>0 表示 Slave
    brokerId=0
	brokerIP1=192.168.40.129
    #nameServer地址,分号分割
    namesrvAddr=192.168.40.129:9876;192.168.40.132: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=/usr/local/rocketmq/store/broker-a
    #commitLog 存储路径
    storePathCommitLog=/usr/local/rocketmq/store/broker-a/commitlog
    #消费队列存储路径存储路径
    storePathConsumeQueue=/usr/local/rocketmq/store/broker-a/consumequeue
    #消息索引存储路径
    storePathIndex=/usr/local/rocketmq/store/broker-a/index
    #checkpoint 文件存储路径
    storeCheckpoint=/usr/local/rocketmq/store/checkpoint
    #abort 文件存储路径
    abortFile=/usr/local/rocketmq/store/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的从节点

    #所属集群名字
    brokerClusterName=rocketmq-cluster
    #broker名字,名字可重复,为了管理,每个master起一个名字,他的slave同他,eg:Amaster叫broker-a,他的slave也叫broker-a
    brokerName=broker-b
    #0 表示 Master,>0 表示 Slave
    brokerId=1
	brokerIP1=192.168.40.129
    #nameServer地址,分号分割
    namesrvAddr=192.168.40.129:9876;192.168.40.132:9876
    #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
    defaultTopicQueueNums=4
    #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
    autoCreateTopicEnable=true
    #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
    autoCreateSubscriptionGroup=true
    #Broker 对外服务的监听端口,
    listenPort=10920
    #删除文件时间点,默认凌晨 4点
    deleteWhen=04
    #文件保留时间,默认 48 小时
    fileReservedTime=120
    #commitLog每个文件的大小默认1G
    mapedFileSizeCommitLog=1073741824
    #ConsumeQueue每个文件默认存30W条,根据业务情况调整
    mapedFileSizeConsumeQueue=300000
    #destroyMapedFileIntervalForcibly=120000
    #redeleteHangedFileInterval=120000
    #检测物理文件磁盘空间
    diskMaxUsedSpaceRatio=88
    #存储路径
    storePathRootDir=/usr/local/rocketmq/store/broker-b-s
    #commitLog 存储路径
    storePathCommitLog=/usr/local/rocketmq/store/broker-b-s/commitlog
    #消费队列存储路径存储路径
    storePathConsumeQueue=/usr/local/rocketmq/store/broker-b-s/consumequeue
    #消息索引存储路径
    storePathIndex=/usr/local/rocketmq/store/broker-b-s/index
    #checkpoint 文件存储路径
    storeCheckpoint=/usr/local/rocketmq/store/checkpoint
    #abort 文件存储路径
    abortFile=/usr/local/rocketmq/store/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

在192.168.40.132机器中配置
配置broker-a的从节点

vi $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a-s.properties
    #所属集群名字
    brokerClusterName=rocketmq-cluster
    #broker名字,名字可重复,为了管理,每个master起一个名字,他的slave同他,eg:Amaster叫broker-a,他的slave也叫broker-a
    brokerName=broker-a
    #0 表示 Master,>0 表示 Slave
    brokerId=1
	brokerIP1=192.168.40.132
    #nameServer地址,分号分割
    namesrvAddr=192.168.40.129:9876;192.168.40.132:9876
    #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
    defaultTopicQueueNums=4
    #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
    autoCreateTopicEnable=true
    #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
    autoCreateSubscriptionGroup=true
    #Broker 对外服务的监听端口,
    listenPort=10920
    #删除文件时间点,默认凌晨 4点
    deleteWhen=04
    #文件保留时间,默认 48 小时
    fileReservedTime=120
    #commitLog每个文件的大小默认1G
    mapedFileSizeCommitLog=1073741824
    #ConsumeQueue每个文件默认存30W条,根据业务情况调整
    mapedFileSizeConsumeQueue=300000
    #destroyMapedFileIntervalForcibly=120000
    #redeleteHangedFileInterval=120000
    #检测物理文件磁盘空间
    diskMaxUsedSpaceRatio=88
    #存储路径
    storePathRootDir=/usr/local/rocketmq/store/broker-b-s
    #commitLog 存储路径
    storePathCommitLog=/usr/local/rocketmq/store/broker-b-s/commitlog
    #消费队列存储路径存储路径
    storePathConsumeQueue=/usr/local/rocketmq/store/broker-b-s/consumequeue
    #消息索引存储路径
    storePathIndex=/usr/local/rocketmq/store/broker-b-s/index
    #checkpoint 文件存储路径
    storeCheckpoint=/usr/local/rocketmq/store/checkpoint
    #abort 文件存储路径
    abortFile=/usr/local/rocketmq/store/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的主节点

vi $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b.properties
    #所属集群名字
    brokerClusterName=rocketmq-cluster
    #broker名字,名字可重复,为了管理,每个master起一个名字,他的slave同他,eg:Amaster叫broker-a,他的slave也叫broker-a
    brokerName=broker-b
    #0 表示 Master,>0 表示 Slave
    brokerId=0
    #nameServer地址,分号分割
    namesrvAddr=192.168.40.129:9876;192.168.40.132:9876
    #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
    defaultTopicQueueNums=4
	brokerIP1=192.168.40.132
    #是否允许 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=/usr/local/rocketmq/store/broker-a
    #commitLog 存储路径
    storePathCommitLog=/usr/local/rocketmq/store/broker-a/commitlog
    #消费队列存储路径存储路径
    storePathConsumeQueue=/usr/local/rocketmq/store/broker-a/consumequeue
    #消息索引存储路径
    storePathIndex=/usr/local/rocketmq/store/broker-a/index
    #checkpoint 文件存储路径
    storeCheckpoint=/usr/local/rocketmq/store/checkpoint
    #abort 文件存储路径
    abortFile=/usr/local/rocketmq/store/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

6.服务启动

启动NameServe集群

分别在192.168.40.128和192.168.40.132启动NameServer

nohup sh mqnamesrv & 

启动Broker集群

在192.168.40.128上启动master1和slave2
master1:

nohup sh mqbroker -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a.properties &

slave2:

nohup sh mqbroker -c  $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b-s.properties &

在192.168.25.132上启动master2和slave1

master2:

nohup sh mqbroker -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-b.properties &

slave1:

nohup sh mqbroker -c $ROCKETMQ_HOME/conf/2m-2s-sync/broker-a-s.properties &

查看进程状态

启动后通过JPS查看启动进程
在这里插入图片描述

关闭命令

mqshutdown namesrv
mqshutdown broker

7.安装console集群监控平台搭建

https://github.com/apache/rocketmq-externals

下载并编译打包rocketmq-externals文件夹

git clone https://github.com/apache/rocketmq-externals cd rocketmq-console mvn clean package -Dmaven.test.skip=true

修改springboot工程中的配置文件
添加nameserver地址

rocketmq.config.namesrvAddr=192.168.40.129:9876;192.168.40.132:9876

运行即可

java -jar rocketmq-console-ng-1.0.0.jar
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rocketmq搭建2m2s踩坑版 的相关文章

随机推荐

  • QT笔记:QT 窗口关闭 程序进程不退出

    最近在做一个工具用于控制mcu 这其中肯定就需要open端口 所以不能同时打开一个设备 所以在发布程序后 打开设备后关闭QT的UI界面 再次打开程序进行连接设备的时候出现open设备失败的问题 第一次打开设备 关闭应用再次连接设备 后面查看
  • SpringBoot对接小程序微信支付

    目录 前言 一 准备工作 2 1 企业微信小程序开通 2 1 1 获取开发者ID 2 1 2 开通支付功能 2 1 3 关联商户号 2 2 企业商户号的开通 2 2 1 获取商户号mch id 2 2 2 获取商户API密钥mch key
  • I帧、P帧和B帧的特点

    I帧 帧内编码帧 I帧特点 1 它是一个全帧压缩编码帧 它将全帧图像信息进行JPEG压缩编码及传输 2 解码时仅用I帧的数据就可重构完整图像 3 I帧描述了图像背景和运动主体的详情 4 I帧不需要参考其他画面而生成 5 I帧是P帧和B帧的参
  • 李沐论文精读系列三:MoCo、对比学习综述(MoCov1/v2/v3、SimCLR v1/v2、DINO等)

    文章目录 一 MoCo 1 1 导言 1 1 1 前言 1 1 2 摘要 1 1 3 导言 1 2 相关工作 1 2 1 SimCLR 端到端的学习方式 Inva Spread也是 1 2 2 memory bank InstDisc模型
  • MySql下最好用的数据库管理工具是哪个?

    维基上有个很全的列表 https en wikipedia org wiki Comparison of database tools 1 phpmyadmin 用过3 9版 UTF 8 中文不显示 2 HeidiSQL 7 0 不错 以前
  • 关于CoInitialize()

    在msdn中对于CoInitialize的解释如下 Initializes the COM library on the current apartment and identifies the concurrency model as s
  • ADC基本原理

    ADC基本原理 1 ADC即为典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号 2 对于32 1 ADC转换时间 最大转换速率 1us 最大转换速度为1MHz 在ADCCLK 14M 采样周期为1 5个ADC时钟下得到 2
  • f2fs文件系统 CP介绍

    前言 在前面的介绍中 f2fs保证一致性有两种方法 前滚恢复和后滚恢复 前滚恢复需要配合fsync流程使用 先不进行介绍 而后滚恢复就是本章节需要介绍的CheckPoint相关内容 所谓的文件系统一致性 可以简单类比交易操作 即交易双方中一
  • Selenium成长之路-08简单对象定位之class name方法

    class name 的定位方法与tag name 是差不多的 我们直接上代码 还是以百度首页输入框为例来进行演示 从截图中可以看出来 class name 就是 s ipt 下面我们就通过class name元素来进行定位 coding
  • Finding the Control Points of a Bezier Curve

    原文链接 https blog sklambert com finding the control points of a bezier curve Finding the Control Points of a Bezier Curve
  • 【HIT-计算机系统】ICS-Lab4 Buflab/AttackLab

    第1章 实验基本信息 1 1 实验目的 理解C语言函数的汇编级实现及缓冲器溢出原理 掌握栈帧结构与缓冲器溢出漏洞的攻击设计方法 进一步熟练使用Linux下的调试工具完成机器语言的跟踪调试 1 2 实验环境与工具 1 2 1 硬件环境 x64
  • Unity3D开发工程师

    岗位职责 1 完成Unity3D项目架构 2 负责项目相关逻辑开发 3 Unity 3D同PHP数据交互 4 Unity 3D通过javascript与数据库链接 职位要求 1 计算机相关专业 2 熟悉3D图形学 两年以上Unity3D经验
  • 6 种方法部署 TensorFlow2 机器学习模型,简单 + 快速 + 跨平台!

    当你创建或找到了一个完美的机器学习模型时 你一定想在各个平台上都使用到它 比如电脑 网页 移动端 甚至是 Docker 环境中 不但个人如此 在实际工作中 一个优秀的程序员除了要学会构建机器学习模型 也更应该学会将其成功部署 向用户提供便捷
  • Matlab坐标变换篇

    一 安装Robotics System Toolbox 二 弄懂左乘和右乘 介绍的第一个函数为欧拉 齐次矩阵 左手坐标系下 中指对着自己为x轴 z轴为拇指 T0 eul2tr 0 0 0 基坐标系 Tx transl 5 0 0 xyz T
  • linux系统下的ocr软件,Ubuntu下的ocr文字识别(pdf、tif等)

    平时使用扫描件或者pdf查看文档 但是在ipad上当文字比较小的时候不能有效放大 过着每次阅读需要移动屏幕 十分不方便 为此想将pdf或者图片中的文字截取出来 可以有效处理 当然需要ocr技术了 现在我们就来考虑和解决这个问题 1 技术准备
  • 手把手教你如何编写一个Makefile文件

    一 概念理解 彩蛋藏在某个地方 1 1 什么是Makefile C语言中 我们使用visual studio开发软件时候 写程序开始时候都会创建一个project项目文件 然后在文件里面编译 h 和 c 的文件 在Linux中 有一个叫ma
  • wordpress 导入数据后 为什么总是跳转到安装页面

    在WordPress导入数据后跳转到安装页面的问题可能由以下原因引起 数据库连接问题 在导入数据之前 确保您的WordPress配置文件中的数据库连接信息正确且完整 打开 wp config php 文件 确保数据库的名称 用户名 密码和主
  • [转]JDK、JRE、JVM三者间的关系

    注 原文链接 http playkid blog 163 com blog static 56287260201372113842153 JDK Java Development Kit 是针对Java开发员的产品 是整个Java的核心 包
  • git 版本控制操作流程 500字

    Git 版本控制操作流程 1 首先 通过Git Bash或命令行工具下载Git 并进行安装 2 接下来 配置Git的用户名和邮箱 3 然后 通过git init命令 创建一个新的Git仓库 4 接着 通过git add命令 将文件添加到Gi
  • rocketmq搭建2m2s踩坑版

    搭建过程中遇到了些问题百度了很久终于东拼西凑成功解决了 看看成果 console完美运行 代码生产消费也是正常的 言归正传开始搭建 0 服务器环境介绍 没有将master与对应的slave安装在同一个节点 如果在一个节点挂了master就挂