mq安装配置
软件安装
1.安装目录
一般以${HOME}/project_RocketMQ/rocketmq-${version}/作为部署路径。
2.编译安装
(1)下载rocketmq源码
https://github.com/alibaba/RocketMQ/tree/v3.5.8 下载源码程序。
(2)编译安装
源码解压,进入解压后文件目录,执行install.sh命令(会执行mvn命令),之后会在taget目录下产生alibaba-rocketmq-broker/alibaba-rocketmq目录,alibaba-rocketmq目录里的文件即为我们所需要的。由于公司都在使用双主模式,下面以搭建双主集群为例
(3)双主配置(其中一个节点)
将上述编译产生的alibaba-rocketmq目录拷贝到需要安装的目录下
1)编辑conf/mqnamesrv.properties
listenPort=9876(默认端口)
serverWorkerThreads=8
verCallbackExecutorThreads=0
serverSelectorThreads=3
serverOnewaySemaphoreValue=256
serverAsyncSemaphoreValue=64
serverChannelMaxIdleTimeSeconds=120
serverSocketSndBufSize=2048
serverSocketRcvBufSize=1024
serverPooledByteBufAllocatorEnable=false
2)编辑cone/2m-noslave/broke-a. properties
(另外一个从节点建议其名为broke-a. properties)
brokerClusterName=CSMAIL_MQ_Cluster
brokerName=broker-a(另外一个从节点名字一定不能相同)
brokerId=0
brokerIp1=brokerIP
namesrvAddr=nameserver1 ip:nameserver1 port; nameserver2 ip:nameserver2 port 2
defaultTopicQueueNums=8
autoCreateTopicEnable=false
autoCreateSubscriptionGroup=false
listenPort=20206
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=50000000
destroyMapedFileIntervalForcibly=120000
redeleteHangedFileInterval=120000
diskMaxUsedSpaceRatio=88
storePathRootDir=${HOME}/project_RocketMQ/rocketmq-${version}/store
storePathCommitLog=${HOME}/project_RocketMQ/rocketmq-${version}/logs
maxMessageSize=65536
flushCommitLogLeastPages=4
flushConsumeQueueLeastPages=2
flushCommitLogThoroughInterval=10000
flushConsumeQueueThoroughInterval=60000
checkTransactionMessageEnable=false
sendMessageThreadPoolNums=128
pullMessageThreadPoolNums=128
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
3)启动脚本编写
启动nameserver脚本
#!/bin/sh
source ~/.bash_profile
echo "MQ Namesrve Start Running!"
cd /$path/bin/
nohup sh mqnamesrv -c ../conf/mqnamesrv.properties
>/$path/bin//logs/mqnamesrv.log 2>&1 &
echo "MQ Namesrve Start Success!"
启动broker脚本
echo "MQ Broker Start Running!"
cd /$path/bin/
nohup sh mqbroker -c ../conf/2m-noslave/broker-a.properties
>/$path/logs/mqbroker.log 2>&1 &
echo "MQ Broker Start Success!"
建议:nameserver和broker启动脚本写到一个里面,需要判断nameserver正常启动后在启动broker。
软件配置
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876;rocketmq-nameserver3:9876;rocketmq-nameserver4: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=${HOME}/project_RocketMQ/rocketmq-${version}/store
#commitLog 存储路径
storePathCommitLog=${HOME}/project_RocketMQ/rocketmq-${version}/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=${HOME}/project_RocketMQ/rocketmq-${version}/store/consumequeue
#消息索引存储路径
storePathIndex=${HOME}/project_RocketMQ/rocketmq-${version}/store/index
#checkpoint 文件存储路径
storeCheckpoint=${HOME}/project_RocketMQ/rocketmq-${version}/store/checkpoint
#abort 文件存储路径
abortFile=${HOME}/project_RocketMQ/rocketmq-${version}/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