美文网首页
RocketMQ-本地搭建

RocketMQ-本地搭建

作者: Robin92 | 来源:发表于2020-04-25 23:43 被阅读0次

中间件概念

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

  • 文件中间件,如 FastHDFS
  • 消息中间件,如各种 MQ、Kafka
  • 搜索中间件,如 ElasticSearch
  • 缓存中间件,如 Redis、Memcache

安装

  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 文件。


相关文章

  • RocketMQ-本地搭建

    中间件概念 即中间角色,不独立工作。 文件中间件,如 FastHDFS 消息中间件,如各种 MQ、Kafka 搜索...

  • RocketMQ-主从搭建

    主从模式特点 主从模式环境构建可以保障消息的即时性和可靠性。投递一条消息后,关闭主节点,从节点继续可以提供消费者数...

  • RocketMQ-单master搭建

    下载RocketMQ源码包并编译 编译后的tar包下载地址https://pan.baidu.com/s/1I3Q...

  • Flutter 入坑

    # 本地环境搭建

  • RocketMQ-双master环境搭建

    RocketMQ简介 RocketMQ下载地址:https://rocketmq.apache.org/relea...

  • RocketMQ-控制台搭建

    下载源码包并修改配置文件 之后找到rocketmq-console文件夹并进入,修改application.pro...

  • 我的第一篇博客

    搭建本地YUM本地库iso挂载 挂载: 卸载: 挂载:

  • 利用Ruby sinatra搭建本地测试平台

    在利用Python Flask搭建本地测试平台中,笔者给出了使用python flask搭建本地Resful服务的...

  • 虚谷数据库集群搭建手册

    搭建yum源 分为两步,先搭建本地yum源,再搭建ftpyum源。 1.本地yum源 内容如下: 然后执行命令,刷...

  • babel本地编辑环境搭建

    babel本地编辑环境搭建 今天讲的是babel搭建本地环境,众所周知,现如今,javascript已经发布了es...

网友评论

      本文标题:RocketMQ-本地搭建

      本文链接:https://www.haomeiwen.com/subject/ouyhwhtx.html