1 Download RockeMQ Package:
You need to download it and put it to the OS Image.
wget http://apache.claz.org/rocketmq/4.3.2/rocketmq-all-4.3.2-bin-release.zip
and unzip the package to /opt/rocketmq
|
2 Prerequsite
JDK installed.
3 Create service account for Jetty
useradd -m rocketmq
echo "umask 002" >> /home/rocketmq/.bash_profile
|
4 Modify PATH system variable4
run /opt/rocketmq/bin/os.sh
change JVM parameters in /opt/rocketmq/bin/runserver.sh
|
5 Configure RocketMQ
run /opt/rocketmq/bin/os.sh
change JVM parameters in /opt/rocketmq/bin/runserver.sh
change JVM parameters in /opt/rocketmq/bin/runbroker.sh
#Note: Usually set the Xmn to 1/8 or Xmx |
8 Add RocketMQ to system service
cd /etc/init.d
vi rocketmq and add
#!/usr/bin/env bash## rocketmq - this script starts and stops the rocketmq daemon## chkconfig: - 85 15ROCKETMQ_HOME=/opt/rocketmq
ROCKETMQ_BIN=${ROCKETMQ_HOME}/bin
ADDR=`hostname -i`:9876
LOG_DIR=${ROCKETMQ_HOME}/logs
NAMESERVER_LOG=${LOG_DIR}/namesrv.log
BROKER_LOG=${LOG_DIR}/broker.log
start() { if [ ! -d ${LOG_DIR} ];then
su - rocketmq -c "mkdir ${LOG_DIR}"
fi
cd ${ROCKETMQ_HOME}
su - rocketmq -c "nohup sh $ROCKETMQ_HOME/bin/mqnamesrv > ${NAMESERVER_LOG} 2>&1 &"
echo "The Name Server boot success..."
su - rocketmq -c "nohup sh $ROCKETMQ_HOME/bin/mqbroker -n ${ADDR} > ${BROKER_LOG} 2>&1 &"
echo "The broker[%s, ${ADDR}] boot success..."
}stop() { cd ${ROCKETMQ_HOME}
su - rocketmq -c "sh $ROCKETMQ_HOME/bin/mqshutdown broker"
sleep 1
su - rocketmq -c "sh $ROCKETMQ_HOME/bin/mqshutdown namesrv"
}restart() { stop
sleep 5
start
}case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 2
esac#################################################chmod a+x rocketmq
chkconfig --add rocketmqchown -R rocketmq:rocketmq /opt/rocketmq
|
9 add a boot script to setup Rocketmq JVM(below script is only for standalone mode)
#!/bin/bash#set -x#this script is only going to set Rocketmq standalone installation(nameserver and broker server in a same host)RQ_HOME_BIN=/opt/rocketmq/bin
#RQ_HOME_BIN=/home/dc-user/rq/rocketmq-all-4.3.2-bin-release/bin#$RQ_HOME_BIN/runserver.sh to modify the #39 JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"#$RQ_HOME_BIN/runbroker.sh to modify the #39 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"#get current physical memory settingmem_size=`free -m | grep Mem | awk '{print $2}'`
#set jetty JVM xmx to 50% of memjmem=$(($mem_size/4))
jmemn=$(($jmem/2))
jmem=$jmem"m"
jmemn=$jmemn"m"
sed -i "s/-Xmn[0-9]\+[g|m]/-Xmn$jmemn/g" $RQ_HOME_BIN/runserver.sh
sed -i "s/-Xms[0-9]\+[g|m]/-Xms$jmem/g" $RQ_HOME_BIN/runserver.sh
sed -i "s/-Xmx[0-9]\+[g|m]/-Xmx$jmem/g" $RQ_HOME_BIN/runserver.sh
sed -i "s/-Xmn[0-9]\+[g|m]/-Xmn$jmemn/g" $RQ_HOME_BIN/runbroker.sh
sed -i "s/-Xms[0-9]\+[g|m]/-Xms$jmem/g" $RQ_HOME_BIN/runbroker.sh
sed -i "s/-Xmx[0-9]\+[g|m]/-Xmx$jmem/g" $RQ_HOME_BIN/runbroker.sh
|