RocketMq——windows环境搭建与入门(亲自配置)

测试环境通过:
windows10 64位 企业版;rocketmq(v4.4.0);jdk-8u152-windows-x64;

RocketMq——windows环境搭建与入门

一、准备工作

运行当前最新版本的RockitMQ(v4.4.0),必须先安装64bit的JDK1.8或以上版本。

从RockitMQ官网 http://rocketmq.apache.org/release_notes/ 下载最新的release包。

RocketMq——windows环境搭建与入门(亲自配置)_第1张图片

将rocketmq复制到D:\usr\rocketmq下面。

RocketMq——windows环境搭建与入门(亲自配置)_第2张图片

二、RocketMQ基本结构

在动手开发之前,我们需要了解一下RocketMQ的基本结构。

RocketMq——windows环境搭建与入门(亲自配置)_第3张图片

RocketMQ基本结构

如上图所示,一个正常工作的RocketMQ包括四个部分。

NameServer :基于高可用设计产生的,用于服务发现和路由。正式应用时通常采用集群部署。

Broker:实现队列机制,负责消息存储和转发。正式应用时也采用集群部署。

Producer:消息生产者,生成消息并发送到RocketMQ中,生产者通常是我们自己实现的应用程序。

Consumer:消息消费者,从RocketMQ中接收消息并进行业务处理。这部分也通常是我们自己实现的。

三、Windows环境下启动最小应用

从上面的图可以了解到,RocketMQ自身分为 NameServer 和 Broker 两个部分,因此,用作本机开发调试用的最小应用,应该分别启动一个NameServer和一个Broker节点。

RocketMQ默认提供了 windows环境 和 linux环境 下的启动脚本。脚本位于bin目录下,windows的脚本以.cmd为文件名后缀,linux环境的脚本以.sh为文件名后缀。

不过,通常情况下,windows下的脚本双击启动时,都是窗口一闪而过,启动失败。下面的内容就帮大家解决这些问题。

第一步,配置 JAVA_HOME 和 ROCKETMQ_HOME 环境变量

JAVA_HOME 的配置如下:

JAVA_HOME    D:\usr\java\jdk1.8.152

CLASSPATH     .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

path               %JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;

ROCKETMQ_HOME 应指向解压后的Readme.md文件所在目录。

如上面的第二张图,我的 ROCKETMQ_HOME 应配置为D:\usr\rocketmq
NAMESRV_ADDR   localhost:9876

第二步,启动 NameServer

NameServer的启动脚本是bin目录下的mqnamesrv.cmd。

上文讲过,即使配置好了ROCKETMQ_HOME环境变量,mqnamesrv.cmd的启动通常也以失败告终。

阅读mqnamesrv.cmd脚本,发现其实际上是调用了runserver.cmd脚本来实现启动的动作。

而在runserver.cmd脚本,java的默认启动参数中,启动时堆内存的大小为2g,老旧一点的机器上根本没有这么多空闲内存。

因此,用编辑器修改一下runserver.cmd脚本。将原来的内存参数注释掉(cmd脚本使用rem关键字),修改为:

  1. rem set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
  2. set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx512m"
复制代码

直接双击mqnamesrv.cmd脚本启动NameServer。

RocketMq——windows环境搭建与入门(亲自配置)_第4张图片

NameServer启动显示

看到 The Name Server boot success 字样,表示NameServer己启动成功。

windows环境下,可以在目录%USERPROFILE%\logs\rocketmqlogs下找到NameServer的启动日志。文件名为namesrv.log。


第三步,启动 Broker

Broker的启动脚本是mqbroker.cmd。

与mqnamesrv.cmd脚本类似,mqbroker.cmd是调用runbroker.cmd脚本启动Broker的。

同样的,优化一下runbroker.cmd的启动内存

  1. rem set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g"
  2. set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx512m"
复制代码

双击mqbroker.cmd脚本启动Broker。

RocketMq——windows环境搭建与入门(亲自配置)_第5张图片

Broker启动成功

看到 The broker ... boot success 字样,表示Broker己启动成功。

与NameServer类似,可以在目录%USERPROFILE%\logs\rocketmqlogs下找到Broker的启动日志。文件名为broker.log。

NameServer与Broker修改日志保存路径:

RocketMq——windows环境搭建与入门(亲自配置)_第6张图片

修改上述三个文件,在下面添加,然后将${user.home}替换为${LOG_HOME},即可更改日志路径

RocketMq——windows环境搭建与入门(亲自配置)_第7张图片

四、验证RocketMQ功能

RocketMQ自带了恬送与接收消息的脚本tools.cmd,用来验证RocketMQ的功能是否正常。

tool.cmd脚本需要带参数执行,无法用简单的双击方式启动。因此,我们打开一个cmd窗口,并跳转到bin目录下。

打开cmd窗口并跳转到bin目录下

启动消费者

与mqbroker.cmd脚本类似,启动tool.cmd命令之前我们要指定NameServer地址。

这里我们采用命令方式指定,并启动消费者。依次执行如下命令:

  1. tools.cmd org.apache.rocketmq.example.quickstart.Consumer
复制代码

RocketMq——windows环境搭建与入门(亲自配置)_第8张图片

启动消费者成功

启动生产者

再打开一个cmd窗口,依次执行如下命令:

  1. tools.cmd org.apache.rocketmq.example.quickstart.Producer
复制代码

生产者启动命令

启动成功后,生产者会发送1000个消息,然后自动退出。

RocketMq——windows环境搭建与入门(亲自配置)_第9张图片

生产者发送消息并退出

此时,在消费者界面就会收到刚刚生产者发出的消息。

RocketMq——windows环境搭建与入门(亲自配置)_第10张图片

消费者接收消息

至此,RocketMQ最小应用己经可以正常工作,能满足我们开发环境下调试代码的需求。

详细文章及代码查看

你可能感兴趣的:(rocketmq,windows,java,开发语言)