RocketMQ下载安装、集群搭建保姆级教程

逃离我推掉我的手 2023-10-13 15:16 23阅读 0赞

目录

1.下载安装

2.配置

3.测试

4.集群配置

4.1.规划

4.2.环境准备

4.3.节点配置

4.3.1.master1

4.3.2.slave2

4.3.3.master2

4.3.4.slave1

4.4.启动

4.5.测试


1.下载安装

前置条件:

JDK环境

下载地址:

下载 | RocketMQ

博主下载的是4.7.1版本。source是源码,Binary是可运行程序。

9fcc29132bed4c079643fd95a619fb7f.png

2.配置

server和broker的启动脚本里,给JVM的内存都是几个G,如果机器扛不住,可以修改一下:

runserver.sh,博主改为了:

509e377a73b048b6b1afb8d6642a1e73.png

runbroker.sh,博主改为了:

7dd86a5be7284a629e8204e77d8e85f9.png

3.测试

在config/broker.config中添加如下配置:

  1. autoCreateTopicEnable=true
  2. #aclEnable=true

启动name server:

  1. nohup bin/mqnamesrv &

启动broker:

  1. nohup bin/mqbroker -c conf/broker.conf &

RocketMQ安装目录下自带一个测试demo,运行后会自动向MQ中插入一千条数据: 首先配置一下环境变量

  1. export NAMESRV_ADDR='localhost:9876'

如果脚本执行失败记得关一下防火墙试试。

然后运行脚本:

bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

4.集群配置

4.1.规划

这里以搭建一个两节点,两主两备的集群为例,展示rocketMq的集群搭建。

集群规划:



















ip nameserver broker
192.1688.31.10 nameserver broker-a、broker-b-s
192.1688.31.20 nameserver broker-b、broker-a-s

备注:broker-a-s即broker-a的备份,broker-b-s即broker-b的备份。

4.2.环境准备

在/config目录下会有配置模板,其中提供了两主两从这种模式的配置模板,async表示主从之间是进行异步复制,sync表示主从之间是进行同步复制。这里博主用的是异步复制的模式。

19f7203c446647b1a9753c3b56daf86e.png

所有节点上先增加hostname便于DNS解析:

vim /etc/hosts

  1. #nameserver
  2. 192.168.31.10 rocketmq-nameserver1
  3. 192.168.31.20 rocketmq-nameserver2
  4. #broker
  5. 192.168.31.10 rocketmq-master1
  6. 192.168.31.10 rocketmq-slave2
  7. 192.168.31.20 rocketmq-master2
  8. 192.168.31.20 rocketmq-slave1

配置后重启网卡:

systemctl restart network

关闭防火墙:

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

创建好需要的目录:

mkdir /usr/local/rocketmq

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

mkdir /usr/local/rocketmq/store-1
mkdir /usr/local/rocketmq/store-1/commitlog
mkdir /usr/local/rocketmq/store-1/consumequeue
mkdir /usr/local/rocketmq/store-1/index

mkdir /usr/local/rocketmq/store-2
mkdir /usr/local/rocketmq/store-2/commitlog
mkdir /usr/local/rocketmq/store-2/consumequeue
mkdir /usr/local/rocketmq/store-2/index

mkdir /usr/local/rocketmq/store-3
mkdir /usr/local/rocketmq/store-3/commitlog
mkdir /usr/local/rocketmq/store-3/consumequeue
mkdir /usr/local/rocketmq/store-3/index

4.3.节点配置

4.3.1.master1

配置broker-a.properties:

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=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每个文件的大小默认1G
mapedFileSizeCommitLog=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
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

4.3.2.slave2

配置broker-b-s.properties:

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2: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=/usr/local/rocketmq/store-1
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/store-1/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/store-1/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/store-1/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/store-1/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/store-1/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

4.3.3.master2

配置broker-b.properties:

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=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每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/rocketmq/store-2
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/store-2/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/store-2/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/store-2/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/store-2/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/store-2/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

4.3.4.slave1

配置broker-a-s.properties:

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2: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=/usr/local/rocketmq/store-3
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/store-3/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/store-3/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/store-3/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/store-3/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/store-3/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

4.4.启动

两个节点先分别启动name server:

nohup rocketmq的bin目录所在的全路径/mqnamesrv &

然后两个节点分别用不同的配置文件启动两个broker:

nohup ocketmq的bin目录所在的全路径/mqbroker -c rocketmq的bin目录所在的全路径/2m-2s-async/xxx.properties &

启动后用jps查看一下,应该有一个name server、两个broker进程。

4.5.测试

bin目录下会有管理控制台命令mqadmin,用来查看mq的相关消息,用一下命令查看集群情况:

bin/mqadmin clusterList -n rocketmq-nameserver1:9876;rocketmq-nameserver2:9876

发表评论

表情:
评论列表 (有 0 条评论,23人围观)

还没有评论,来说两句吧...

相关阅读

    相关 RocketMQ保姆教程

    ![format_png][] 上周花了一点时间从头到尾、从无到有地搭建了一套RocketMQ的环境,觉得还挺easy的,所以就写篇文章分享给大家。 整篇文章可以大致分为三