QuickStart
我的学习环境是 windows 环境,以下所有环境配置均为 windows10。
在初次安装时遇到不少问题,最终解决后将解决方案记录下来。
下载及解压
官网:https://rocketmq.apache.org/dowloading/releases/
下载 bin-realease.zip,解压到一个文件夹下即可,
目前使用 4.9.0
配置环境变量
ROCKETMQ_HOME="D:\rocketmq"
NAMESRV_ADDR="localhost:9876"
修改配置文件
内存分配
如果电脑运行内存不够的话,进入 bin 目录修改 runbroker.cmd
和 runserver.cmd
启动时的运行内存,注释原来的内存分配,自己在底下加上一行内存分配设置
runbroker.cmd
rem set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g"
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx512m"
runserver.cmd
rem set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx512m"
日志存储位置
打开 logback_broker.xml
、logback_namesrv.xml
、 logback_tools.xml
在 <configuration>
后添加一段代码
<confuguration>
<!-- 添加的代码, 将 value 修改为 log存储位置的根目录 -->
<property name="LOG_HOME" value="D:/environment/rocketmq-all-4.9.0" />
...... 原有内容
</confuguration>
然后将文件中 ${user.home}
替换为 ${LOG_HOME}
broker配置
broker 默认将缓存存储在 c盘当中,如果你的 c盘空间不足(准确的说是剩余空间不足 25%),broker就会认为磁盘空间不足,无法产生和消费消息,此时broker处于阻塞状态,无法进行服务,因此要更改 broker 缓存位置。 这种设置仅限于测试环境使用,开发环境应根据需要调整
进入 conf/broker.conf
# 检测物理文件磁盘空间, 已使用 99% 时才报错
diskMaxUsedSpaceRatio=99
# 存储路径
storePathRootDir=D:/environment/rocketmq-all-4.9.0/logs/store
# commitLog 存储路径
storePathCommitLog=D:/environment/rocketmq-all-4.9.0/logs/store/commitlog
# 消费队列存储路径
storePathConsumeQueue=D:/environment/rocketmq-all-4.9.0/logs/store/consumequeue
# 消息索引存储路径
storePathIndex=D:/environment/rocketmq-all-4.9.0/logs/store/index
# checkpoint 文件存储路径
storeCheckpoint=D:/environment/rocketmq-all-4.9.0/logs/store/checkpoint
# abort 文件存储路径
abortFile=D:/environment/rocketmq-all-4.9.0/logs/store/abort
开始使用
启动 nameServer
打开命令行窗口,转到安装目录下
.\bin\mqnamesrv.cmd
看见 The Name Server boot success. serializeType=JSON 即为启动成功
启动 broker
此处与官网不同,我们需要指定 NameServer ip地址,同时指定我们之前修改过的配置文件。
在新的命令行窗口输入以下内容
start .\bin\mqbroker.cmd -n 127.0.0.1:9876 -c .\conf\broker.conf autoCreateTopicEnable=true
看见 The broker[broker-a, 192.168.56.1:10911] boot success. serializeType=JSON and name server is 127.0.0.1:9876 即为启动成功
启动 Consumer
在新的命令行窗口输入以下内容
.\bin\tools.cmd org.apache.rocketmq.example.quickstart.Consumer
看见 Consumer Started. 即为启动成功
启动 Producer
在新的命令行窗口输入以下内容
.\bin\tools.cmd org.apache.rocketmq.example.quickstart.Producer
开始发送消息即为启动成功,该样例会发送1000条消息,发送消息结束后自动退出。
转到 Consumer 窗口,即可看到 Consumer 消费了数据。