一、准備環境
1.系統:Centos7.3(無硬性要求)
2. jdk:1.8
3.maven:3.5(無硬性要求)
4.git
5.rocketmq 4.2
二、環境部署
1.jdk1.8以及maven可以在另一篇文章查看【http://www.cnblogs.com/dingkailinux/p/8794611.html】
2.git安裝
# yum -y install git
# git --version
git version 2.16.2
3.部署rocketmq
參考官方指導【https://rocketmq.apache.org/docs/quick-start/】
(1)下載源碼
wget 'http://mirrors.hust.edu.cn/apache/rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip'
(2)解壓編譯
# unzip rocketmq-all-4.2.0-source-release.zip # mv rocketmq-all-4.2.0 /opt/ # cd /opt/rocketmq-all-4.2.0# mvn -Prelease-all -DskipTests clean install -U #使用mvn編譯
(3)編譯完成后,調整配置
# cd distribution/target/apache-rocketmq #編譯后的程序其實就在’apache-rocketmq‘中,這個目錄可以單獨拿出來啟動
# cd /opt/rocketmq-all-4.2.0/distribution/target/
# cp -a apache-rocketmq /opt/rocketmq
# cd /opt/rocketmq
#########調整啟動內存#######
# vim bin/runserver.sh #調整nameserver啟動的內存(如果服務器內存比較大,可以不調整),如果內存較小,不調整此文件,可能導致無法啟動
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" #需要調整標紅部分
# vim bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
########調整日志文件位置########
# vim conf/logback_broker.xml
# vim conf/logback_filtersrv.xml
# vim conf/logback_namesrv.xml
# vim conf/logback_tools.xml
以上四個文件,將類似於[${user.home}/logs/rocketmqlogs/namesrv_default.log]修改為自定義的日志路徑,如[/data/logs/rocketmqlogs/namesrv_default.log],如果不修改,日志就會寫入到用戶目錄下的logs目錄下
(4)啟動服務
# nohup sh bin/mqnamesrv & #啟動nameserver
# tail -f nohup.outThe Name Server boot success #輸出此類信息,說明啟動成功
# tail -f nohup.out
#nohup sh bin/mqbroker -n 本地IP:9876 & #啟動broker
INFO main - The broker[localhost, 172.17.154.196:10911] boot success. serializeType=JSON and name server is 172.17.154.196:9876 #日志輸出如下信息,證明啟動成功
3.向客戶端提供NameServer地址
export NAMESRV_ADDR=172.17.154.196:9876 也可以將內容寫入/etc/profile中 cat <<EOF>>/etc/profile export NAMESRV_ADDR=172.17.154.196:9876 EOF source /etc/profile
4.模擬消息傳送
(1)模擬producer產生消息 #cd /opt/rocketmq/ #sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer (2)模擬consumer消費消息 #cd /opt/rocketmq/ #sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer