ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

RocketMQ:Windows下开发环境搭建

2022-05-29 10:35:08  阅读:319  来源: 互联网

标签:脚本 JAVA 启动 Windows cmd Broker NameServer RocketMQ 搭建


一、准备工作
Windows必须先安装64bit的JDK1.8或以上版本。

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


解压到本地目录。

以上的知识都来源于RocketMQ官网的参考文档,需要更多细节的同学, 可以打开
http://rocketmq.apache.org/docs/quick-start/ 自行阅读。

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

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

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

第一步,配置 JAVA_HOME 和 ROCKETMQ_HOME 环境变量
JAVA_HOME 的配置已经是老生常谈,这里不再赘述,不懂的话请自行百度。

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

如上面的第一张图,我的 ROCKETMQ_HOME 应配置为 E:\rocketMq

第二步,启动 NameServer
NameServer的启动脚本是bin目录下的mqnamesrv.cmd。

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

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

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

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

rem set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx512m"
启动方式一:直接双击mqnamesrv.cmd脚本启动NameServer。

启动方式二:使用cmd命令启动,首先进入rocketMq的安装目录,再进入bin目录,执行‘start mqnamesrv.cmd’,启动NAMESERVER

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的启动内存
rem set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g"
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx512m"

启动方式 :不 修改mqbroker.cmd脚本,直接使用cmd命令启动,首先跟启动NameServer一样先进入rocketmq安装目录的bin目录下面,然后执行‘start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true’启动broker

Broker启动成功

看到 The broker ... boot success 字样,表示Broker己启动成功,使用命令启动的界面没有内容显示
四、验证RocketMQ功能

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

这里我们采用命令方式指定,并启动消费者。依次执行如下命令:
set NAMESRV_ADDR=127.0.0.1:9876
tools.cmd org.apache.rocketmq.example.quickstart.Consumer

启动生产者
再打开一个cmd窗口,依次执行如下命令:
set NAMESRV_ADDR=127.0.0.1:9876
tools.cmd org.apache.rocketmq.example.quickstart.Producer

生产者启动命令

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

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

消费者接收消息

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

启动监控:
docker run -d
--restart=always
--name rmqadmin_641
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.64.1:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
-p 9998:8080
-t styletang/rocketmq-console-ng

标签:脚本,JAVA,启动,Windows,cmd,Broker,NameServer,RocketMQ,搭建
来源: https://www.cnblogs.com/gxhh-lzh/p/16323266.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有