rocketmq脚本安装执行
脚本说明:此脚本为noslave安装方式
- 将安装包与安装脚本放至/data目录下
- 修改脚本变量

ROLE:安装角色为broker-a、broker-b、broker-c
BROKER_A、BROKER_B、BROKER_C:对应的节点IP
HOST_A、HOST_B、HOST_C:对应的主机名,如果知道可以直接写在变量中
- /etc/hosts行修改对应的HOST_A、HOST_B、HOST_C

- 执行脚本
chmod +x rocketmq-install.sh
sh rocketmq-install.sh

出现上图结果即为安装成功
- 集群查看验证
sh /data/rocketmq/bin/mqadmin clusterList -n rocketmq-nameserver-a:9876

安装完成
- 脚本附件:
#!/bin/bash # Author: goujinyang # rocketmq-2m-noslave,broker-a部署 set -e # RocketMQ 版本和目录设置 MQ_VERSION=rocketmq-all-5.0.0-bin-release ROLE=broker-a APP_DIR=/data BASE_DIR=$APP_DIR/rocketmq STORE_DIR=$BASE_DIR/store BROKER_A=73.134.42.98 BROKER_B=73.134.42.170 BROKER_C=73.134.47.215 HOST_A=`hostname` HOST_B= HOST_C= cat >> /etc/hosts << EOF $BROKER_A $HOST_A rocketmq-nameserver-a rocketmq-master-a $BROKER_B rocketmq-nameserver-b rocketmq-master-b $BROKER_C rocketmq-nameserver-c rocketmq-master-c EOF # 解压并移动RocketMQ unzip $MQ_VERSION.zip mv $MQ_VERSION $BASE_DIR # 创建存储和日志目录 mkdir -p $STORE_DIR/{commitlog,consumequeue,index} mkdir -p $BASE_DIR/logs # 启动NameServer nohup $BASE_DIR/bin/mqnamesrv >$BASE_DIR/logs/mqnamesrv.log 2>&1 & sleep 3 # 配置Broker-A cat > $BASE_DIR/conf/2m-noslave/$ROLE.properties << EOF # 所属集群名字 brokerClusterName=rocketmq-cluster # broker名字 brokerName=$ROLE # 0 表示 Master,>0 表示 Slave brokerId=0 # nameServer地址 namesrvAddr=rocketmq-nameserver-a:9876;rocketmq-nameserver-b:9876;rocketmq-nameserver-c:9876 # broker IP地址 #brokerIP1=$BROKER_A # 在发送消息时,自动创建服务器不存在的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=$STORE_DIR/ # commitLog 存储路径 storePathCommitLog=$STORE_DIR/commitlog # 消费队列存储路径 storePathConsumeQueue=$STORE_DIR/consumequeue # 消息索引存储路径 storePathIndex=$STORE_DIR/index #checkpoint 文件存储路径 storeCheckpoint=$STORE_DIR/checkpoint #abort 文件存储路径 abortFile=$STORE_DIR/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 EOF # 修改进程内存 sed -i 's/JAVA_OPT="\${JAVA_OPT} -server -Xms8g -Xmx8g"/JAVA_OPT="\${JAVA_OPT} -server -Xms1024m -Xmx1024m -Xmn512m"/' $BASE_DIR/bin/runbroker.sh # 启动Broker-A nohup $BASE_DIR/bin/mqbroker -c $BASE_DIR/conf/2m-noslave/$ROLE.properties >$BASE_DIR/logs/$ROLE.log 2>&1 & sleep 2 # 检查NameServer是否启动 if netstat -anpt | grep -q :9876; then echo "##### mqnamesrv is running..." else echo "##### mqnamesrv is not running..." exit 1 fi # 检查Broker-A是否启动 if ps -ef | grep -v grep | grep mqbroker | grep -q "$ROLE"; then echo "##### $ROLE is running..." else echo "##### $ROLE is not running..." exit 1 fi

浙公网安备 33010602011771号