Apache rocketmq 官网下载、Apache rocketmq 安装和Apache rocketmq 配置。由于rocketmq是阿里捐赠给Apache的。目前3.x以下版本为阿里版本。4.x为Apache托管版本。这里要说的是Apache的4.x版本。<h2>引言</h2>
<p> 本文将讲解从Apache rocketmq 官网下载、Apache rocketmq 安装和Apache rocketmq 配置。由于rocketmq是阿里捐赠给Apache的。目前3.x以下版本为阿里版本。4.x为Apache托管版本。这里要说的是Apache的4.x版本。操作系统环境为centos6/7<br />
1.准备工作</p>
由于目前Apache没有提供直编译的下载文件。我们需要自己去GitHub下载源文件进行编译才能使用。因其环境是Java。所以需要使用jdk(注意必须是jdk,jre不能编译程序)<br />
1.1需要的环境
<ul>
<li>64位操作系统</li>
<li>64位jdk1.8+</li>
<li>maven 3.2+</li>
<li>Git(用于下载源码。可手动下载则无需安装)</li>
</ul>
<h2>2.编译工作</h2>
2.1环境: <br />
由于我所使用的服务器上只有jre,也不想去服务器折腾编译环境所以我把编译工作放在了windows系统上。jdk的安装及配置可参考<a rel="" href="http://www.leftso.com/blog/35.html" rel="external nofollow" target="_blank">http://www.leftso.com/blog/35.html</a>。maven去 Apache官网下载编译好的版本。将maven的bin目录添加到windows系统的环境变量path中即可。该操作可以参考jdk的环境变量配置。<br />
2.2rocketmq源码下载<br />
Apache rocketmq的源码GitHub地址为:https://github.com/apache/incubator-rocketmq/archive/rocketmq-all-4.1.0-incubating.tar.gz<br />
下载后解压放在一个文件夹里面。<br />
2.3编译<br />
打开windows的cmd窗口。切换至解压后的rocketmq源文件根目录。执行命令:
<pre>
<code>mvn -Prelease-all -DskipTests clean install -U</code></pre>
这个步骤需要的时间可能有点长。因为maven需要下载相关的依赖文件。<br />
直到出现以下内容则为编译成功:<br />
<img alt="编译rocketmq成功" class="img-thumbnail" src="/assist/images/blog/8783ac7f5bf148f582112bfcb11e592d.png" />
<h2>3.上传项目至服务器</h2>
为了偷懒。或者说保持和Apache操作一致。我将编译后的整个项目上传至服务。我存放路径为/user/local/rocketmq/incubator-rocketmq(可根据实际情况修改,incubator-rocketmq为项目的源码根目录)
<h2>4.配置rocketmq内存</h2>
由于默认的rockertmq内存配置有点大。server的默认配置为4Gb,broker的默认配置为8Gb。测试机可能没有那么大的内存。则会导致各种启动失败。<br />
切换至/usr/local/rocketmq/incubator-rocketmq/distribution/target/apache-rocketmq/bin目录。修改runserver.sh和runbroker.sh<br />
使用vi打开runserver.sh并找到JVM Configuration配置将其修改:<br />
<img alt="jvm内存修改" class="img-thumbnail" src="/assist/images/blog/17ab176c3b7f452589d43f7e2554fab7.png" /><br />
这里的值可以根据具体情况来修改。<br />
同样打开文件runbroker.sh修改jvm参数<br />
<br />
最后将整个目录文件添加可执行权限。
<pre>
<code>chmod 755 *</code></pre>
<h2>5.启动停止rockermq服务</h2>
5.1启动name server<br />
命令:
<pre>
<code>nohup sh bin/mqnamesrv &</code></pre>
查看启动情况<br />
命令:
<pre>
<code>tail -f ~/logs/rocketmqlogs/namesrv.log</code></pre>
<img alt="name server start success" class="img-thumbnail" src="/assist/images/blog/cb003f6bdc7a40b086b4ce1c79e0054c.png" /><br />
5.2启动broker服务<br />
<br />
启动命令:
<pre>
<code>nohup sh bin/mqbroker -n localhost:9876 &</code></pre>
<br />
查看启用情况:
<pre>
<code>tail -f ~/logs/rocketmqlogs/broker.log </code></pre>
<img alt="broker success" class="img-thumbnail" src="/assist/images/blog/aef78ae1961844ab92eb1887c0ba796f.png" /><br />
<br />
5.3停止name server 或者broker<br />
切换至/usr/local/rocketmq/incubator-rocketmq/distribution/target/apache-rocketmq/bin目录<br />
停止name server命令:
<pre>
<code class="language-html">[root@localhost bin]# pwd
/usr/local/rocketmq/incubator-rocketmq/distribution/target/apache-rocketmq/bin
[root@localhost bin]# ./mqshutdown namesrv
The mqnamesrv(3077) is running...
Send shutdown request to mqnamesrv(3077) OK</code></pre>
<br />
停止broker命令:
<pre>
<code class="language-html">[root@localhost bin]# ./mqshutdown broker
The mqbroker(3104) is running...
Send shutdown request to mqbroker(3104) OK
[1]- Exit 143 nohup sh bin/mqnamesrv (wd: /usr/local/rocketmq/incubator-rocketmq/distribution/target/apache-rocketmq)
(wd now: /usr/local/rocketmq/incubator-rocketmq/distribution/target/apache-rocketmq/bin)
[root@localhost bin]#
</code></pre>
<br />