RocketMQ 学习历程(一)------windows 上搭建rocketmq服务
今天从零开始学习RocketMQ,以前学习过JMS规范以及ActiveMQ相关知识,但总感觉RocketMQ给我带来一种莫名的好感,加上公司目前也在使用RocketMQ,所以,很有必要学习一波,乘年轻刚入职场,多学点、研究点技术,相信结局总是美好的。
本文很简单,就是基本的windows环境搭建,非集群版本。请不要问我为什么不在linux上面进行搭建,首先我用不惯虚拟机,第二之前买的阿里云学生机过期了,贼难受。学会在windows上搭建RocketMQ服务之后,在linux上面搭建也是同样的步骤和道理的。本文最后还会放出小编在搭建过程中犯过的错误以及解决方法,让大家能更快地进行服务搭建。
一、windows下RocketMQ服务搭建
首先假设我们已经对RocketMQ的相关架构有所了解,如果你还没有进行了解学习,可以先到官方网站或者找找博客进行学习。RocketMQ的启动流程主要有以下几个步骤:
-
1、启动命名服务
NameServer
-
2、
Broker
的启动 -
3、创建
Provider
及Consumer
,模拟消息发送接收 -
4、关闭
RocketMQ
服务器
1、启动命名服务NameServer
NameServer
的默认启动类为:org.apache.rocketmq.namesrv.NamesrvStartup

2、Broker
的启动
Broker
的默认启动类为:org.apache.rocketmq.broker.BrokerStartup

3、创建Provider
及Consumer
,模拟消息发送接收
生产消息:

消费消息:

4、关闭RocketMQ
服务器
先关闭Broker
,然后再关闭名称服务器。

二、相关错误及解决方法
- 1、下载完rocketmq之后必须配置环境变量
ROCKETMQ_HOME
,否则报错.

那么为什么会出现这样的错误呢?很简单,你打开mqnamesrv.cmd
文件就知道了,里边有这么一段代码:
if not exist "%ROCKETMQ_HOME%\bin\runserver.cmd" echo Please set the ROCKETMQ_HOME variable in your environment! & EXIT /B 1
如果不存在该环境变量就执行echo
语句。
- 2、解压压缩包的路径不能出现空格
也就是说你下载完rocketmq压缩包之后,解压路径不能出现类似下面的情况:
e://Program File/rocketmq
出现空格,会报“找不到主类”的错误
三、总结
搭建rocketmq环境比想象中要简单,过程中也踩了两个坑,在这里分享一个解决启动问题的思路,那就是如果你实在找不出问题该如何解决,那么你可以尝试打开cmd
文件,查看源代码,看看到底启动的逻辑,问题会清晰很多。
上面也指出了namesrv
和broker
的相关启动类,所有的启动过程都在源码的main()
方法中,可以进去一探究竟~~
转载自:https://juejin.cn/post/6844903645390061576