千家信息网

RocketMQ的安装部署方式

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"RocketMQ的安装部署方式",在日常操作中,相信很多人在RocketMQ的安装部署方式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"RocketM
千家信息网最后更新 2026年10月31日RocketMQ的安装部署方式

这篇文章主要介绍"RocketMQ的安装部署方式",在日常操作中,相信很多人在RocketMQ的安装部署方式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"RocketMQ的安装部署方式"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

准备

操作系统:CentOS-6.9-x86_64-bin-DVD1.iso

依赖环境:gcc 4.4.7.rar、jdk-8u121-linux-x64.tar.gz

安装软件:rocketmq-all-4.2.0.tar.gz

部署

部署方式

默认RocketMQ部署都是集群部署,业务处理及存储根据broker有关,RocketMQ也有所谓的主从节点master/slave,这里的Slave 不可写,但可读,类似于 Mysql主备方式。

建议在安装系统时磁盘配置为RAID10 时,即使机器宕机不可恢复情况下,由与 RAID10磁盘非常可靠,消息也不会丢(异步刷盘丢失少量消息,同步刷盘一条不丢)。

1、单主节点部署(单个Master)

这种方式风险较大,因为是单节点部署一旦Broker重启或者宕机时,会导致整个服务不可用,**不建议线上**环境使用

2、多主节点部署(多个Master)

一个集群无 Slave,全是 Master,可部署 2 个 Master 或者 3 个 Master 甚至是多个N个Master节点,相对于单个Master,其可用性和稳定性都有大幅度提高,对于单个Broker节点宕机或者重启时,不会影响整个集群的正常使用。

宕机的Broker节点上面的消息不能立刻被消费,直至恢复服务至正常状态才能被消费者消费,消息实时性会受到受到影响

3、多主节点多从节点模式,异步复制(多个Master/Slave,ASYNC)

每个 Master 配置一个 Slave,有多对Master-Slave, HA采用异步复制方式,主备有短暂消息延迟,毫秒级。相对于多主部署在其可用性上有所提高。即使磁盘损坏,消息丢失的非常少,且消息实时性不会受影响,因为Master 宕机后,消费者仍然可以从 Slave消费,此过程对应用透明。不需要人工干预。性能同多 Master 模式几乎一样。

Master 宕机,磁盘损坏情况,会丢失少量消息

4、多主节点多从节点模式,同步双写(多个Master/Slave,SYNC)

每个 Master 配置一个 Slave,有多对Master-Slave, HA采用同步双写方式,主备都写成功,向应用返回成功。数据与服务都无单点, Master宕机情况下,消息无延迟,服务可用性与数据可用性都非常高。

性能比异步复制模式略低,大约低 10%左右,发送单个消息的 RT会略高。目前主宕机后,备机不能自动切换为主机,后续会支持自动切换功能


注:以上 Broker 与 Slave 配对是通过指定相同的brokerName 参数来配对, Master的 BrokerId 必须是 0, Slave 的BrokerId 必须是大与 0 的数。另外一个 Maste下面可以挂载多个 Slave,同一 Master 下的多个 Slave通过指定不同的 BrokerId来区分

双主部署

1、服务器环境

序号IP用户名密码角色模式
110.10.14.142root123456nameServer1,brokerServer1Master1
210.10.14.143root123456nameServer2,brokerServer2Master2

Hosts 添加信息

IPNAME
10.10.14.142nameServer1
10.10.14.142brokerServer1
10.10.14.143nameServer2
10.10.14.143brokerServer2

分别在两台机器上修改文件vi /etc/hosts

2、上传并解压RocketMQ文件(两台主机)

上传rocketmq-all-4.2.0.tar.gz文件至/usr/local

解压至/usr/local文件夹下:tar -zxvf rocketmq-all-4.2.0.tar.gz -C /usr/local

建立软连接利于操作

ln -s rocketmq-all-4.2.0 rocketmq

创建存储路径

# mkdir /usr/local/rocketmq/store# mkdir /usr/local/rocketmq/store/commitlog# mkdir /usr/local/rocketmq/store/consumequeue# mkdir /usr/local/rocketmq/store/index

3、RocketMQ 配置文件(两台主机)

查看rocketmq/config

有三个文件夹,这是默认存在的,分别表示2主2从异步刷盘、2主2从同步刷盘、2主没有从节点。我们部署的就是2主。修改配置文件。

2m-noslave文件夹中修改broker-a.properties/broker-a.properties

#所属集群名字brokerClusterName=rocketmq-cluster#broker名字,注意此处不同的配置文件填写的不一样brokerName=broker-a#0 表示 Master,>0 表示 SlavebrokerId=0#nameServer地址,分号分割namesrvAddr= rocketmq-nameserver1:9876;rocketmq-nameserver2:9876# 在发送消息时,自动创建服务器不存在的topic,默认创建的队列数defaultTopicQueueNums=4# 是否允许 Broker 自动创建Topic,建议线下开启,线上关闭autoCreateTopicEnable=true# 是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭autoCreateSubscriptionGroup=true# Broker 对外服务的监听端口listenPort=10911# 删除文件时间点,默认凌晨 4点deleteWhen=04#文件保留时间,默认 48 小时fileReservedTime=120#commitLog每个文件的大小默认1GmapedFileSizeCommitLog=1073741824#ConsumeQueue每个文件默认存30W条,根据业务情况调整mapedFileSizeConsumeQueue=300000#destroyMapedFileIntervalForcibly=120000#redeleteHangedFileInterval=120000#检测物理文件磁盘空间diskMaxUsedSpaceRatio=88#存储路径storePathRootDir= /usr/local/rocketmq/store#commitLog 存储路径storePathCommitLog= /usr/local/rocketmq/store/commitlog#消费队列存储路径存储路径storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue#消息索引存储路径storePathIndex=/usr/local/rocketmq/store/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#- SLAVEbrokerRole=ASYNC_MASTER#刷盘方式#- ASYNC_FLUSH 异步刷盘#- SYNC_FLUSH 同步刷盘flushDiskType=ASYNC_FLUSH#checkTransactionMessageEnable=false#发消息线程池数量#sendMessageThreadPoolNums=128#拉消息线程池数量#pullMessageThreadPoolNums=128

4、修改日志配置文件(两台主机)

mkdir -p /usr/local/rocketmq/logscd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml

5、修改启动脚本(开发环境下)(两台主机)

一般我们开发环境都是虚拟机内存不大,需要修改其配置文件。

vim /usr/local/rocketmq/bin/runbroker.sh

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"

vim /usr/local/rocketmq/bin/runserver.sh

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -XX:MaxPermSize=320m"

修改java虚拟机的内存大小时堆内存必须大于等于1G,这是启动服务的最低配置要求

6、启动NameServer(两台主机)

cd /usr/local/rocketmq/binnohup sh mqnamesrv &

7、启动BrokerServer

启动BrokerServer A 【10.10.14.142】

cd /usr/local/rocketmq/binnohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &查看进程jps查看日志文件tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log

启动BrokerServer B 【10.10.14.143】

cd /usr/local/rocketmq/binnohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &查看进程jps查看日志文件tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log

8、数据清理

cd /usr/local/rocketmq/binsh mqshutdown brokersh mqshutdown namesrv等待停止rm -rf /usr/local/rocketmq/storemkdir /usr/local/rocketmq/storemkdir /usr/local/rocketmq/store/commitlogmkdir /usr/local/rocketmq/store/consumequeuemkdir /usr/local/rocketmq/store/index按照上面步骤重启NameServer与BrokerServertail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.logtail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log

到此,关于"RocketMQ的安装部署方式"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

文件 消息 节点 方式 存储 配置 路径 服务 主机 多个 同步 消费 模式 环境 磁盘 单个 可用性 建议 情况 集群 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司经营范围 中国互联网科技股 互联网通讯科技 新华互联网科技学院 互联网 科技公司 万易互联网科技 深圳期待互联网科技 上海亿帐通互联网科技 联恩商钥互联网科技有限公司 济南和联互联网科技有限公司 黑科技闪耀互联网之光 新兴科技互联网创新大赛颁奖典礼 互联网科技大奖都有哪些公司 南博望互联网科技有限公司 恒生互联网科技业指数调整周期 梅州GM互联网络科技有限公司 互联网科技数字货币 互联网领先科技活动 广州三三互联网科技有限公司 互联网科技的前景 互联网 科技创新 致聘互联网科技 互联网公司会议桌创意科技软装饰 北京大学互联网科技怎么样 世界互联网科技公司市值排名 迪庆互联网科技招生 用友工业互联网科技发展 为客找房互联网科技公司怎么样 亚光科技低轨卫星互联网 平安好医生打造互联网科技医疗
0