为什么80%的码农都做不了架构师?>>>
1. 软件准备
官方文档:https://github.com/alibaba/RocketMQ/wiki/quick-start
根据文档说明,需要以下软件来完成这个快速开始示例:
⑴ 64bit OS, best to have Linux/Unix/Mac;
⑵ 64bit JDK 1.6+;
⑶ Maven 3.x
⑷ Git
⑸ Screen
1.1 关于Linux和Windows
作为纯Java程序,RocketMQ在Windows下也是可以运行的,官方还准备了exe执行文件方便Windows环境下进行开发部署。
Windows下的编译部署大同小异,有兴趣可以参考下面这个网址:
http://blog.csdn.net/ruishenh/article/details/22390809
1.2 关于JDK
如果Linux已经自带JDK,可以使用命令查看JDK版本,如果版本不符合64位1.6+,需要先卸载旧版本然后安装新版本。
我安装的是jdk-8u111-linux-x64.rpm,过程略过,有问题可以参考下面的网址。
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.htm
安装教程:http://www.cnblogs.com/benio/archive/2010/09/14/1825909.html
按理32位JDK也是可以运行的,只是需要调整内存配置,但可能不适合生产环境。未经测试,不妄言。
1.3 安装Maven
1.3.1 下载
- cd /usr/javawork
- wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
1.3.2 解压
- tar -zxvf apache-maven-3.3.9-bin.tar.gz
1.3.3 设置环境变量
- vi /etc/profile
文件末尾添加两行配置:
- export M2_HOME=/usr/javawork/apache-maven-3.3.9
- export PATH=$PATH:$M2_HOME/bin
退出vi执行命令使其生效:
- source /etc/profile
1.3.4 添加alibaba的Maven仓库镜像(下载速度飞快)
- vi /usr/javawork/apache-maven-3.3.9/conf/settings.xml
在
1.4 安装Git
- yum install git
如果已下载RocketMQ源码包,Git可以无需安装。shell安装脚本中有git pull命令,如果未安装git,会提示command not found,但不影响后面的编译。
如果嫌烦,vi install.sh打开文件删掉 git pull这条命令即可。
1.5 安装screen
- yum install screen
screen 非必需,但安装后切换会话非常方便。官方文档中使用了这条命令,所以还是装上较好。
命令介绍:http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html
2. 安装RocketMQ
2.1 下载编译
- git clone https://github.com/alibaba/RocketMQ.git
- cd RocketMQ
- bash install.sh
如果编译成功,最终得到的目录如下图。devenv是软链接,源文件在target目录。
2.2 环境变量
设置环境变量
- cd devenv
- echo "ROCKETMQ_HOME=`pwd`" >> ~/.bash_profile
使环境变量生效:
- source ~/.bash_profile
3. 启动RocketMQ
3.1 启动Name Server
- screen bash mqnamesrv
如果未安装screen,可以使用下面这条命令:
nohup sh mqnamesrv &(加 & 可以后台运行,否则Ctrl+c命令退出当前会话,服务会停止)
启动成功的信息:
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=320m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON
备注:出现三条警告信息是因为JDK1.8已经不支持设置方法区大小和指定CMS垃圾收集算法进行FullGC,后面会讲如何去掉这些信息。
3.2 启动Broker
先按ctrl+a,然后再按d挂起当前会话,然后再执行以下命令:
- screen bash mqbroker -n localhost:9876
启动成功后除了警告信息外,会出现以下信息:
3.3 去除警告信息和调整内存占用
3.3.1 修改xml文件
- cd bin
- vi mqadmin.xml
- vi mqbroker.xml
- vi mqnamesrv.xml
- vi mqfiltersrv.xml
依次打开这些xml文件,并删除下图红色框中的标记的配置信息。
3.3.2 修改启动文件
- vi runserver.sh
- vi runbroker.sh
依次打开这两个文件,去除下图红色标记的配置信息。
如图, 黄色部分是内存设置, 因为当前是虚拟机搭建的开发环境, 所以内存调整成如下:
runserver.sh: -Xms512m -Xmx512m -Xmn256m
runbroker.sh: -Xms2g -Xmx2g -Xmn512m
3.4 停止服务
关闭Name Server
- sh mqshutdown namesrv
关闭Broker
- sh mqshutdown broker
3.5 日志目录
- cd ~/logs/rocketmqlogs/
3.6 收发消息测试
3.6.1 设置地址
- export NAMESRV_ADDR=localhost:9876
3.6.2 测试命令
生产者:
- bash tools.sh com.alibaba.rocketmq.example.quickstart.Producer
消费者:
- bash tools.sh com.alibaba.rocketmq.example.quickstart.Consumer