一、准备环境
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