RocketMQ-本地搭建

2020-04-25  本文已影响0人  Robin92

中间件概念

即中间角色,不独立工作。

安装

  1. 下载 jdk sudo apt-get install openjdk-8-jdk,安装后配置 $JAVA_HOME,将 $JAVA_HOME/bin 加入 PATH
  2. 安装 mvn(官网菜鸟教程
  3. 下载 RocketMQ 并安装(官网

注意不是 jre,而是 jdk。
注意版本,可能会有问题。
如果在执行编译 MQ(mvn 命令)时出现 Compilation failure: [ERROR] Source option 5 is no longer supported. Use 6 or later 的错误,需要将 pom.xml 中的 maven-compiler-plugin 配置 sourcetargeet 改为 1.7 及以上重试。(也可能是版本问题造成的)

启动

当编译完了后(mvn 命令),会有一个 ./distribution/target 目录,此目录是编译后的文件,我当前的可执行文件是在 ./distribution/target/rocketmq-4.7.0/rocketmq-4.7.0/bin 中。

image.png

可以将生成的 rocketmq-4.7.0 目录移动到系统目录中,如 /usr/local/ 下。

启动 nameserver

nameserver 相当于一个注册中心,需要先启动它。

进入到 bin 目录中

./mqnamesrv

启动 broker

启动前,要先设置一下。更改 runbroker.sh 中的配置

JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn128m"

启动 broker,需要指定 -n 参数来指定 nameserver 地址和端口

$./mqbroker -n localhost:9876 
The broker[robincai-master, 10.9.0.18:10911] boot success. serializeType=JSON

mqnamesrv 实际是调用了 ./runserver.shmqbroker 实际是调用了 runbroker.sh
runserver.sh 执行了许多配置,比如配置 JVM 的 GC,它启动时上来就给 nameserver 4G 的内存。
runbroker.sh 上来就给 8G 的内存,所以需要上面的配置改动,不然启动时就挂了。
错误信息如下:

./mqbroker
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 8589934592 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /usr/local/rocketmq-4.7.0/bin/hs_err_pid31891.log

测试消息发送和接收

在 bin 目录下有一个 tools.sh,可用来测试,但需要首先修改其配置:

export NAMESRV_ADDR=localhost:9876

然后分别测试发送和接收消息:

./tools.sh org.apache.rocketmq.exampl先改一下 broker 的内存e.quickstart.Producer
./tools.sh org.apache.rocketmq.example.quickstart.Consumer

若无报错,即为成功

控制台

RocketMQ 没有自带的控制台,而可以下载源码安装一个。目录为 rocketmq-externals 中的 rocketmq-console 扩展。

克隆项目。进入到 rocketmq-console 中,执行编译

mvn clean package -Dmaven.test.skip=true

同样会生成一个 target 目录,其中有两个 jar 包,一个是源码包,一个是可用 java 运行的包(rocketmq-console-ng-1.0.1.jar)。

运行控制台服务

java -jar rocketmq-console-ng-1.0.1.jar

其默认运行在 8080 端口,打开 localhost:8080 可查看界面。
在 OPS 页面输入 nameserver 地址(按回后点击更新)即可查看。

启动时加配置 --rocketmq.config.namesrvAddr=127.0.0.1:9876 参数可默认连到一个 nameserver。
也可以写在配置文件中,见源码包中的 application.properties 文件。


上一篇下一篇

猜你喜欢

热点阅读