准备
- RocketMQ的zip包(本文准备的版本是rocketmq-all-4.4.0-bin-release.zip)
- 通过xftp上传到/opt/software下
部署流程
解压
unzip rocketmq-all-4.4.0-bin-release.zip -d /opt/modules
默认文件夹名字太长,修改名字
mv rocketmq-all-4.4.0-bin-release rocketmq
-
创建RocketMQ存储文件的目录
cd /opt/modules/rocketmq/
mkdir logs
mkdir store
cd store/
mkdir commitlog
mkdir consumequeue
mkdir index
文件夹说明:- logs:存储RocketMQ日志目录
- store:存储RocketMQ数据文件目录
- commitlog:存储RocketMQ消息信息
- consumequeue、index:存储消息的索引数据
-
配置文件修改
conf目录配置文件说明:
20200524235403403.png2m-2s-async:2主2从异步
2m-2s-sync :2主2从同步
2m-noslave :2主没有从这里我配置单节点,可以修改2m-2s-async的配置实现。进入2m-2s-async目录,修改第1个配置文件broker-a.properties
cd 2m-2s-async/
vim broker-a.properties
#所属集群名字 brokerClusterName=rocketmq-cluster #broker名字,注意此处不同的配置文件填写的不一样 brokerName=broker-a #0 表示Master, > 0 表示slave brokerId=0 #nameServer 地址,分号分割 namesrvAddr=localhost:9876 brokerIP1 = 服务器ip #在发送消息时,自动创建服务器不存在的Topic,默认创建的队列数 defaultTopicQueueNums=4 #是否允许Broker 自动创建Topic,建议线下开启,线上关闭 autoCreateTopicEnable=true #是否允许Broker自动创建订阅组,建议线下开启,线上关闭 autoCreateSubscriptionGroup=true #Broker 对外服务的监听端口 listenPort=10911 #删除文件时间点,默认是凌晨4点 deleteWhen=04 #文件保留时间,默认48小时 fileReservedTime=48 #commitLog每个文件的大小默认1G mapedFileSizeCommitLog=1073741824 #ConsumeQueue每个文件默认存30W条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 #destroyMapedFileIntervalForcibly=120000 #redeleteHangedFileInterval=120000 #检测物理文件磁盘空间 diskMaxUsedSpaceRatio=50 #存储路径 storePathRootDir=/opt/modules/rocketmq/store #commitLog存储路径 storePathCommitLog=/opt/modules/rocketmq/store/commitlog #消费队列存储路径 storePathConsumeQueue=/opt/modules/rocketmq/store/consumequeue #消息索引存储路径 storePathIndex=/opt/modules/rocketmq/store/index #checkpoint 文件存储路径 storeCheckpoint=/opt/modules/rocketmq/store/checkpoint #abort 文件存储路径 abortFile=/opt/modules/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 #发消息线程池数量 #sendMessageTreadPoolNums=128 #拉消息线程池数量 #pullMessageTreadPoolNums=128
修改日志路径
cd /opt/modules/rocketmq/conf/
sed -i 's#${user.home}#/opt/modules/rocketmq#g' *.xml
(命令说明:sed -i在这里起一个批量替换的作用,sed -i 's#原字符串#新字符#g' 替换的文件
)-
修改默认启动内存大小
cd /opt/modules/rocketmq/bin/
- 修改runbroker.sh
vim runbroker.sh
改前: JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g" 改后: JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g"
- 修改runserver.sh
vim runserver.sh
改前: JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" 改后: JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
- 修改runbroker.sh
-
启动RocketMQ
cd /opt/modules/rocketmq/bin/
- 启动namesrv
nohup sh mqnamesrv &
- 启动broker
nohup sh mqbroker -c /opt/modules/rocketmq/conf/2m-2s-async/broker-a.properties autoCreateTopicEnable=true > /dev/null 2>&1 &
20200525001439706.png
- 启动namesrv