下载rocketmq-4.9.2-bin-release.zip,并解压到/tools 重命名为rocketmq-4.9.2
下载地址:Index of /release_notes
选择自己的版本,我这里选择的4.9.2
2、创建目录2台主机分别创建如下目录
mkdir /tools/rocketmq/store
mkdir /tools/rocketmq/store/commitlog
mkdir /tools/rocketmq/store/consumequeue
mkdir /tools/rocketmq/store/index
mkdir /tools/rocketmq/logs
3、修改配置文件进入到RocketMQ的conf目录
cd /tools/rocketmq-4.9.2/conf
cp -r 2m-2s-async myconf
broker-a.properties
brokerClusterName=DefaultCluster brokerName=broker-a #集群中 0 表示 Master,>0 表示 Slave brokerId=0 brokerRole=ASYNC_MASTER #Broker 的角色 #- ASYNC_MASTER 异步复制Master #- SYNC_MASTER 同步双写Master #- SLAVE #刷盘方式 #- ASYNC_FLUSH 异步刷盘 #- SYNC_FLUSH 同步刷盘 flushDiskType=ASYNC_FLUSH #指定broker的IP brokerIP1=192.168.1.2 #nameServer地址,集群用分号分割 namesrvAddr=192.168.1.2:9876;192.168.1.3:9876 #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 defaultTopicQueueNums=4 #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭 autoCreateTopicEnable=false #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 autoCreateSubscriptionGroup=false #Broker 对外服务的监听端口 listenPort=10911 #删除文件时间点,默认凌晨 4点 deleteWhen=04 #文件保留时间,默认 48 小时 fileReservedTime=48 #commitLog每个文件的大小默认1G mapedFileSizeCommitLog=1073741824 #ConsumeQueue每个文件默认存30W条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 #destroyMapedFileIntervalForcibly=120000 #redeleteHangedFileInterval=120000 #检测物理文件磁盘空间 diskMaxUsedSpaceRatio=88 #存储路径 storePathRootDir=/tools/rocketmq/store #commitLog 存储路径 storePathCommitLog=/tools/rocketmq/store/commitlog #消费队列存储路径存储路径 storePathConsumeQueue=/tools/rocketmq/store/consumequeue #消息索引存储路径 storePathIndex=/tools/rocketmq/store/index #checkpoint 文件存储路径 storeCheckpoint=/tools/rocketmq/store/checkpoint #abort 文件存储路径 abortFile=/tools/rocketmq/store/abort #限制的消息大小 maxMessageSize=65536 #flushCommitLogLeastPages=4 #flushConsumeQueueLeastPages=2 #flushCommitLogThoroughInterval=10000 #flushConsumeQueueThoroughInterval=60000 #checkTransactionMessageEnable=false #发消息线程池数量 sendMessageThreadPoolNums=128 #拉消息线程池数量 #pullMessaeThreadPoolNums=128 #发送消息是否使用可重入锁 useReentrantLockWhenPutMessage=true waitTimeMillsInSendQueue=300 #或者更大
broker-a-s.properties
brokerClusterName=DefaultCluster brokerName=broker-a #集群中 0 表示 Master,>0 表示 Slave brokerId=1 brokerRole=SLAVE #Broker 的角色 #- ASYNC_MASTER 异步复制Master #- SYNC_MASTER 同步双写Master #- SLAVE #刷盘方式 #- ASYNC_FLUSH 异步刷盘 #- SYNC_FLUSH 同步刷盘 flushDiskType=ASYNC_FLUSH #指定broker的IP brokerIP1=192.168.1.4 #nameServer地址,集群用分号分割 namesrvAddr=192.168.1.3:9876;192.168.1.4:9876 #在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 defaultTopicQueueNums=4 #是否允许 Broker 自动创建Topic,建议线下开启,线上关闭 autoCreateTopicEnable=false #是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 autoCreateSubscriptionGroup=false #Broker 对外服务的监听端口 listenPort=10912 #删除文件时间点,默认凌晨 4点 deleteWhen=04 #文件保留时间,默认 48 小时 fileReservedTime=48 #commitLog每个文件的大小默认1G mapedFileSizeCommitLog=1073741824 #ConsumeQueue每个文件默认存30W条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 #destroyMapedFileIntervalForcibly=120000 #redeleteHangedFileInterval=120000 #检测物理文件磁盘空间 diskMaxUsedSpaceRatio=88 #存储路径 storePathRootDir=/usr/local/rocketmq/store2 #commitLog 存储路径 storePathCommitLog=/usr/local/rocketmq/store2/commitlog #消费队列存储路径存储路径 storePathConsumeQueue=/usr/local/rocketmq/store2/consumequeue #消息索引存储路径 storePathIndex=/usr/local/rocketmq/store2/index #checkpoint 文件存储路径 storeCheckpoint=/usr/local/rocketmq/store2/checkpoint #abort 文件存储路径 abortFile=/usr/local/rocketmq/store2/abort #限制的消息大小 maxMessageSize=65536 #flushCommitLogLeastPages=4 #flushConsumeQueueLeastPages=2 #flushCommitLogThoroughInterval=10000 #flushConsumeQueueThoroughInterval=60000 #checkTransactionMessageEnable=false #发消息线程池数量 sendMessageThreadPoolNums=128 #拉消息线程池数量 #pullMessaeThreadPoolNums=128 #发送消息是否使用可重入锁 useReentrantLockWhenPutMessage=true waitTimeMillsInSendQueue=300 #或者更大
注意: 上面配置文件中 【#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭autoCreateTopicEnable=false
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭autoCreateSubscriptionGroup=false】 将topic和订阅组全部关闭自动创建了。 所以在使用Java-API调用之前,一定要手动创建Topic和消费者订阅组,不然消费者端无法获取到消息。
(主题:myTopic , 订阅组: customerGroup)
sh ./bin/mqadmin updateTopic -t myTopic -c DefaultCluster -n "192.168.1.3:9876;192.168.1.4:9876" sh bin/mqadmin updateSubGroup -c DefaultCluster -g customerGroup -n "192.168.1.3:9876;192.168.1.4:9876"5、修改rocketmq启动脚本
适当修改JVM内存大小
vim /tools/rocketmq-4.9.2/bin/runbroker.sh vim /tools/rocketmq-4.9.2/bin/runserver.sh vim /tools/rocketmq-4.9.2/bin/tools.sh6、启动注册中心nameSrv
2台机器都启动nameSrv
进入到/tools/rocketmq-4.9.2 目录,创建log文件夹
#提前创建好目录 nohup sh bin/mqnamesrv > ./logs/namesrv.log 2>&1 &7、启动broker
192.168.1.3 执行: nohup sh bin/mqbroker -c conf/myconf/broker-a.properties > ./logs/broker-a.log 2>&1 & nohup sh bin/mqbroker -c conf/myconf/broker-a-s.properties > ./logs/broker-b-s.log 2>&1 & 192.168.1.4执行: nohup sh bin/mqbroker -c conf/myconf/broker-b.properties > ./logs/broker-b.log 2>&1 & nohup sh bin/mqbroker -c conf/myconf/broker-b-s.properties > ./logs/broker-a-s.log 2>&1 &
以上便是搭建集群完成,接下来我们需要可视化界面,继续可视化界面搭建
8、简单介绍原有的rocketmq-console已被rocketmq-externals单独列为一个项目,现在取名:rocketmq-dashboard
rocketmq-externals地址:GitHub - apache/rocketmq-externals: Mirror of Apache RocketMQ (Incubating)
git项目地址:https://github.com/apache/rocketmq-dashboard
将下载好的压缩包上传到服务器/tools目录下
3、解压文件tar -zxvf rocketmq-dashboard-master.zip
4、进入到目录/tools/rocketmq-dashboard-master/src/main/resources
5、修改配置文件 application.yml 6、进入到 /tools/rocketmq-dashboard-master 使用maven命令打包mvn clean package -Dmaven.test.skip=true
7、进入目录 /tools/rocketmq-dashboard-master/target 执行启动jar命令nohup java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar &
8、启动成功,访问页面文章到此结束!
更多编程内容,请扫码关注《coder练习生》,如果觉得有用,也可赠送作者一杯咖啡



