闲言少叙,直接开始:

1、首先需要下载mq的安装包:
https://archive.apache.org/dist/rocketmq/

我这里下载的是5.1的版本的,5.1启动需要的jdk建议 在jdk9以上

  2、搭建NameServer

在/opt/module目录下解压压缩包

unzip + 压缩文件名

3、配置环境变量:

首先:

vim /etc/profile

然后在文件的最下面:

export ROCKETMQ_HOME=/opt/module/rocketmq-all-5.1.0-bin-release
export PATH=$ROCKETMQ_HOME/bin:$JAVA_HOME/bin:$PATH

这其中的 ROCKETMQ_HOME= 后面添加上你的mq的路径,然后刷新一下:

source /etc/profile

然后修改 NameServer的启动配置,先进入到mq文件中的bin文件夹下

cd /opt/moudle/rocketmq-all-5.1.0-bin-release/bin 

然后编辑 NameServer 的配置文件: vim runserver.sh

将JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
改为JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m

如下图所示:

这里具体的大小根据你的场景来。

4、启动 NameServer ,查看是否启动成功。

nohup ./mqnamesrv &
# 然后在日志中查看信息
tail -f nohup.out  # 如果在其中出现boot success等字样,证明启动成功

此时!!!,如果出现如下错误:

-Djava.ext.dirs=/opt/module/jdk-11.0.24/jre/lib/ext:/opt/module/rocketmq-all-4.9.0-bin-release/bin/../lib:/opt/module/jdk-11.0.24/lib/ext is not supported.  Use -classpath instead.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
需要知道这个问题的根本是jdk报出来的。
从 Java 9 开始,-Djava.ext.dirs 系统属性已经被弃用。在早期版本中,-Djava.ext.dirs 可以用来指定 Java 扩展目录,Java 虚拟机会自动加载这些目录下的 JAR 文件。但新版本为了模块化等特性,不再支持这种粗放式的扩展目录指定方式,转而推荐使用更为精准的 -classpath 选项。
所以这个时候,配置文件中的信息就需要修改了
这个时候可以选择换一个更加高的版本的rockerMQ。

如果出现:
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 4294967296 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /opt/module/rocketmq-all-5.1.0-bin-release/bin/hs_err_pid64330.log
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000700000000, 4294967296, 0) failed; error='Not enough space' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 4294967296 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /opt/module/rocketmq-all-5.1.0-bin-release/bin/hs_err_pid64367.log

这就是代表运行内存不够,这就需要去设置一下运行的内存。

这都是我踩过的坑,希望可以帮助到大家。

5、Broker服务的搭建

依然是在 bin 目录下:

vim runbroker.sh # 编辑 broker启动的配置文件

将JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g"
改为JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m"

如图:

然后去修改一下 broker的配置文件

cd ../conf/  # 这个是当前位置在bin路径下的时候执行
其他的情况大家自行推导

进入后输入: 
vim broker.conf

然后输入 i 在文本的最后添加上:

#允许自动创建topic
autoCreateTopicEnable=true
#添加nameserver地址
namesrvAddr=localhost:9876

然后保存退出

6、启动broker

cd ../bin
nohup ./mqbroker -c ../conf/broker.conf &  #启动broker
tail -f nohup.out                          #查看日志

如何判断是否启动成功,

直接输入 jps ,查看是否可以看到 两个服务就可以了(如果出现问题,更多就是版本的问题或者就是配置文件中的内存大小)

注意:我使用 rocketMQ4.9的版本的时候,jdk最好是8,这样可以通过,如果是其他高版本的,暂时还没有通过。

或者你和我一样使用 jdk11 和 rocketMQ5.1版本,这个就是本文的版本,是可以正常启动的。当然,如果有问题,欢迎留言。

7、最后就是关闭服务:

在bin目录下。直接:
 

mqshutdown + 服务名 
例如:
mqshutdown broker  # 关闭 broker ,建议先关闭这个
mqshutdown namesrv  # 关闭 NameServer 

至此完成!!!

欢迎大家一起讨论,共勉!!!

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐