RocketMQ安装

2018年05月25日 14点热度 0人点赞 0条评论

开始安装RocketMQ之前,需要自行安装Maven,JDK,并配置好环境变量,具体的安装过程这里就省略了
本文中使用的环境为:
JDK: 1.8.0_91
Maven: 3.5.3(印象中RocketMQ是对Maven版本有要求的)
RocketMQ: 4.2.0
CentOS: 6.6

下载

这个不用多说,点击下载即可
RocketMQ下载

下载后解压到相应的目录即可,分别执行以下命令即可

启动Name Server

建议先看下后面的采坑记录第一条
这里必须要说明下,一定要在该目录下distribution/target/apache-rocketmq执行下面的命令

出现一下提示,则启动成功

2018-05-22 17:32:44 INFO main - The Name Server boot success. serializeType=JSON

启动broker

建议先看下后面的采坑记录第一条

出现一下提示,则表示启动成功:

2018-05-23 14:20:52 INFO main - register broker to name server localhost:9876 OK
2018-05-23 14:20:52 INFO main - The broker[Master, 192.168.235.134:10911] boot success. serializeType=JSON and name server is localhost:9876

停止服务

关闭namesrv服务:

sh bin/mqshutdown namesrv

关闭broker服务 :

sh bin/mqshutdown broker

管理控制台

这里顺便提下,RocketMQ有一个对其扩展的开源项目incubator-rocketmq-externals,这个项目中有一个子模块叫“rocketmq-console”,这个便是管理控制台项目了。

下载好了以后,,通过命令进入到rocketmq-console子目录,通过maven对其进行编译打包
(windows用户请在管理员运行cmd)

mvn clean package -Dmaven.test.skip=true

打包成功后命令行如下图所示:(注意win10下面用PowerShell运行此命令会报错,LZ也不知道什么鬼)

得到rocketmq-console-ng-1.0.0-sources.jar之后,找到application.properties修改rocketmq.config.namesrvAddr的值。

运行命令,启动控制台:

启动成功后如下显示:

我们就可以通过浏览器访问localhost:8080 进入控制台界面了,如下图:

后面的大家自己慢慢玩吧,就不多说了

Demo

下面建立一个demo演示一下RocketMQ

  1. 首先新建一个Maven工程,在pom文件里面加入rocketmq

  1. 建立生产者demo

在生产者范例中,我们制定了消费组为"starlin-user",并且我们制定了命名服务器的地址,
然后我们就开始了生产者,然后我们在一个for循环中发送了五次消息,然后我们在生产者中获取了消息的状态。

  1. 建立消费demo

我们的消费者也制定了主题为"starlin-user",而且它也指定了命名服务器的地址,然后设置了在收到消息后的处理方式,然后就启动了消费者。

先启动消费者Consumer,我们会看到消费者端打印如下:

然后我们启动生产者,我们会看到生产者端打印如下:

踩坑记录

  1. 启动NameServer或broker是提示找不到JAVA_HOME
    > ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! !!

解决办法:

在该目录中distribution/target/apache-rocketmq/bin找到runserver.sh文件

vim runserver.sh

同样的后面还需要启动broker,没有配置java环境也是会报错的,后面就不详述了

  1. 无法分配内存Cannot allocate memory

错误信息如下:

主要原因是RocketMQ默认分配的内存有点大,我们在虚拟机环境下,不需要配置那么大的内存,所以需要修改下默认配置,NameServer和broker都需要改的
NameServer路径:/rocketmq-all-4.2.0/distribution/target/apache-rocketmq/bin/runserver.sh
Borker路径:/rocketmq-all-4.2.0/distribution/target/apache-rocketmq/bin/runbroker.sh

  1. No route info of this topic
    出现这个错误有点不好搞,大概分以下几步:

    • 检查各配置是否正确
    • 启动 broker时加上参数atuoCreateTopicEnable=true
    • 多看日志,总是能看出点端倪

starlin

生而无畏,战至终章

文章评论