2.偏头痛杨的rocketmq4.x入门之安装&启动篇
2017-09-28 15:48
246 查看
前戏
rocketmq的基本概念我们都已经知道了,下面开始来安装吧,本文全部是在linux环境下。
安装rocketmq有两种方式获取rocketmq的源码包。
第一种是在linux下安装git,通过git命令获取rocketmq的源码包。
第二种是通过rocketmq在github的主页中去下载源码包。
本人倾向于第二种,因为之前使用第一种方式会出现一些灵异事件,例如无缘无故丢消息等问题。。。
前置步骤
64位linux系统+jdk1.8(必须要jdk,而不是jre,因为jre没有编译器)+maven3.2.x+git(第二种安装方式则不需要)
这些安装方式超级无敌简单,可以自行百度,此处不再赘述。
注意不要忘了设置JAVA_HOME环境变量。
获取源码包
我们需要把rocketmq的代码下载到本地,然后通过maven进行构建,最后运行。
在这里区分两种方式:
第一种方式:从git上拉rocketmq的代码
cd /opt
git clone https://github.com/apache/incubator-rocketmq.git
注意:
官网写的是:git clone -b develop https://github.com/apache/incubator-rocketmq.git, 从dev分支拉代码未免有点不牢靠。
那我们从其他的分支里拿,例如:
git clone -b release-4.1.0-incubating https://github.com/apache/incubator-rocketmq.git
也可以从master分支中拿,那就是默认不写分支,例如:
git clone https://github.com/apache/incubator-rocketmq.git
第二种方式:从rocketmq的github上下载release版本
进入https://github.com/apache/incubator-rocketmq,点击"releases",下载相应的源码包。
例如:incubator-rocketmq-rocketmq-all-4.1.0-incubating.tar.gz
下载后我们需要将上传到服务器中(例如/opt目录),并解压。
tar xvf /opt/incubator-rocketmq-rocketmq-all-4.1.0-incubating.tar.gz-C /opt/yang
为了后面两种方式的命令相同,我把文件夹名字改一下。
mv incubator-rocketmq-rocketmq-all-4.1.0-incubating incubator-rocketmq
注意:客户端与服务端的版本需要一致,减少bug。例如客户端与服务端都使用4.1.0。
构建
当我们获得了源码包后,这些包里都是java源文件,我们需要class文件运行在jvm上,此时我们需要maven来去做编译。
注意:不要在windows上做这件事,然后自作聪明的把编译好的文件拖到linux上,会有编码问题。
cd /opt/incubator-rocketmq
mvn -Prelease-all -DskipTests clean install -U
授权命令
为了更方便的使用命令,我们需要把常见的rocketmq命令都授权一下。
cd /opt/incubator-rocketmq/distribution/target/apache-rocketmq/bin
chmod +x mqadmin mqbroker mqfiltersrv mqshutdown mqnamesrv
设置环境变量
其实不设置环境变量也可以,但是我们为了进一步简化后续的broker集群命令,所以还是设置一下吧。
配置rocketmq的环境变量
vi /etc/profile
在结尾添加
export ROCKETMQ_HOME=/opt/incubator-rocketmq/distribution/target/apache-rocketmq
export PATH=$JAVA_HOME/bin:$ROCKETMQ_HOME/bin:$PATH
按esc+!wq保存
使rocketmq的配置生效
source /etc/profile
启动Name Server
注意:启动前需要设置name server的jvm参数,默认堆内存耗费4g,内存设置不合理会导致异常情况发生。
需要设置默认内存。
vi /opt/incubator-rocketmq/distribution/target/apache-rocketmq/bin/runserver.sh
找到这句,然后改成你想要的参数。
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=64m -XX:MaxPermSize=160m"
按esc+!wq保存
启动name server
nohup sh mqnamesrv &
查看日志
tail -f /root/logs/rocketmqlogs/namesrv.log
关闭name server
nohup sh mqshutdown namesrv
name server启动好后,端口默认为9876
启动Broker(非集群,集群模式会在后面文章讲解)
注意:启动前需要设置broker的jvm参数,默认堆内存耗费8g,内存设置不合理会导致异常情况发生。
需要设置默认内存:
vi /opt/incubator-rocketmq/distribution/target/apache-rocketmq/bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"
启动broker
nohup sh mqbroker -n localhost:9876 &
查看日志
tail -f /root/logs/rocketmqlogs/broker.log
关闭broker(不会马上关闭,大概有10秒左右的延迟。不要使用kill来关闭broker,会造成消息丢失。)
nohup sh mqshutdown broker
测试
执行项目中默认的测试例子:生产者&消费者
export NAMESRV_ADDR=localhost:9876
sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
如果看到一堆消息在屏幕上飞,又没有报错的话,那么恭喜你,环境搭建成功。
总结
实话实说,rocketmq的坑还是比我想象中的要多的多,稍微一不小心就会进坑,例如git分支那块,
到底选择哪个分支,选不好就会有bug出现。我遇到过最严重的bug就是生产者生产消息成功,
但队列中找不到,消费也消费不到,消息丢了。。。
个人还是建议使用第二种方式去下载源码包而不是用git选分支的方式。
rocketmq的基本概念我们都已经知道了,下面开始来安装吧,本文全部是在linux环境下。
安装rocketmq有两种方式获取rocketmq的源码包。
第一种是在linux下安装git,通过git命令获取rocketmq的源码包。
第二种是通过rocketmq在github的主页中去下载源码包。
本人倾向于第二种,因为之前使用第一种方式会出现一些灵异事件,例如无缘无故丢消息等问题。。。
前置步骤
64位linux系统+jdk1.8(必须要jdk,而不是jre,因为jre没有编译器)+maven3.2.x+git(第二种安装方式则不需要)
这些安装方式超级无敌简单,可以自行百度,此处不再赘述。
注意不要忘了设置JAVA_HOME环境变量。
获取源码包
我们需要把rocketmq的代码下载到本地,然后通过maven进行构建,最后运行。
在这里区分两种方式:
第一种方式:从git上拉rocketmq的代码
cd /opt
git clone https://github.com/apache/incubator-rocketmq.git
注意:
官网写的是:git clone -b develop https://github.com/apache/incubator-rocketmq.git, 从dev分支拉代码未免有点不牢靠。
那我们从其他的分支里拿,例如:
git clone -b release-4.1.0-incubating https://github.com/apache/incubator-rocketmq.git
也可以从master分支中拿,那就是默认不写分支,例如:
git clone https://github.com/apache/incubator-rocketmq.git
第二种方式:从rocketmq的github上下载release版本
进入https://github.com/apache/incubator-rocketmq,点击"releases",下载相应的源码包。
例如:incubator-rocketmq-rocketmq-all-4.1.0-incubating.tar.gz
下载后我们需要将上传到服务器中(例如/opt目录),并解压。
tar xvf /opt/incubator-rocketmq-rocketmq-all-4.1.0-incubating.tar.gz-C /opt/yang
为了后面两种方式的命令相同,我把文件夹名字改一下。
mv incubator-rocketmq-rocketmq-all-4.1.0-incubating incubator-rocketmq
注意:客户端与服务端的版本需要一致,减少bug。例如客户端与服务端都使用4.1.0。
构建
当我们获得了源码包后,这些包里都是java源文件,我们需要class文件运行在jvm上,此时我们需要maven来去做编译。
注意:不要在windows上做这件事,然后自作聪明的把编译好的文件拖到linux上,会有编码问题。
cd /opt/incubator-rocketmq
mvn -Prelease-all -DskipTests clean install -U
授权命令
为了更方便的使用命令,我们需要把常见的rocketmq命令都授权一下。
cd /opt/incubator-rocketmq/distribution/target/apache-rocketmq/bin
chmod +x mqadmin mqbroker mqfiltersrv mqshutdown mqnamesrv
设置环境变量
其实不设置环境变量也可以,但是我们为了进一步简化后续的broker集群命令,所以还是设置一下吧。
配置rocketmq的环境变量
vi /etc/profile
在结尾添加
export ROCKETMQ_HOME=/opt/incubator-rocketmq/distribution/target/apache-rocketmq
export PATH=$JAVA_HOME/bin:$ROCKETMQ_HOME/bin:$PATH
按esc+!wq保存
使rocketmq的配置生效
source /etc/profile
启动Name Server
注意:启动前需要设置name server的jvm参数,默认堆内存耗费4g,内存设置不合理会导致异常情况发生。
需要设置默认内存。
vi /opt/incubator-rocketmq/distribution/target/apache-rocketmq/bin/runserver.sh
找到这句,然后改成你想要的参数。
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=64m -XX:MaxPermSize=160m"
按esc+!wq保存
启动name server
nohup sh mqnamesrv &
查看日志
tail -f /root/logs/rocketmqlogs/namesrv.log
关闭name server
nohup sh mqshutdown namesrv
name server启动好后,端口默认为9876
启动Broker(非集群,集群模式会在后面文章讲解)
注意:启动前需要设置broker的jvm参数,默认堆内存耗费8g,内存设置不合理会导致异常情况发生。
需要设置默认内存:
vi /opt/incubator-rocketmq/distribution/target/apache-rocketmq/bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"
启动broker
nohup sh mqbroker -n localhost:9876 &
查看日志
tail -f /root/logs/rocketmqlogs/broker.log
关闭broker(不会马上关闭,大概有10秒左右的延迟。不要使用kill来关闭broker,会造成消息丢失。)
nohup sh mqshutdown broker
测试
执行项目中默认的测试例子:生产者&消费者
export NAMESRV_ADDR=localhost:9876
sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
sh $ROCKETMQ_HOME/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
如果看到一堆消息在屏幕上飞,又没有报错的话,那么恭喜你,环境搭建成功。
总结
实话实说,rocketmq的坑还是比我想象中的要多的多,稍微一不小心就会进坑,例如git分支那块,
到底选择哪个分支,选不好就会有bug出现。我遇到过最严重的bug就是生产者生产消息成功,
但队列中找不到,消费也消费不到,消息丢了。。。
个人还是建议使用第二种方式去下载源码包而不是用git选分支的方式。
相关文章推荐
- Android--入门---7---(签名 & 打包 & 安装 & 启动过程)
- Android系统编译环境搭建—Ubuntu14.04安装&root登录&Chromium root启动&安装配置交叉编译环境
- nginx入门(安装,启动,关闭,信号量控制)
- U盘安装单系统ubuntu10.04之全过程&拔掉U盘后系统无法启动
- Linux下的MongoDB安装&启动&关闭
- UBUNTU 16.04安装VIVADO&&成功启动SDK
- Visual Studio2005-"由于应用程序的配置不正确,应用程序未能启动,重新安装 "的问题解决方法
- Oracle入门。安装与启动
- Neo4j安装&入门&一些优缺点
- 【PC|ONS|PSP】花与乙女的祝福(花と乙女に祝福を)+FD皇家花束+春风的礼物【汉化硬盘版】[带全CG存档&攻略+繁体启动+免安装&卸载补丁]
- Maven 3 入门 -- 安装与配置
- 2.偏头痛杨的Java入门教学系列之变量&数据类型篇
- 前端组件化Polymer入门教程(1)——初识&&安装
- Android&iOS:如何在外部启动app(若有安裝APP, 则自动启动app(使用 URL Schema), 若没有安装, 则询问是不是到应用市场下载)
- Hadoop & Spark安装配置与入门
- 从启动一个未安装Apk的页面入门插件化开发
- Oracle入门。安装与启动
- 美化多系统启动选择菜单burg:在deepin 2013&& ubuntu14.04 上安装测试过,完全可用。
- redis入门之redis的安装与启动
- angularjs && bower安装和使用 入门级安装 直接上手