如何在linux服务器上部署rocketMQ
或者你和我一样使用 jdk11 和 rocketMQ5.1版本,这个就是本文的版本,是可以正常启动的。直接输入 jps ,查看是否可以看到 两个服务就可以了(如果出现问题,更多就是版本的问题或者就是配置文件中的内存大小)注意:我使用 rocketMQ4.9的版本的时候,jdk最好是8,这样可以通过,如果是其他高版本的,暂时还没有通过。然后修改 NameServer的启动配置,先进入到mq文件中的b
闲言少叙,直接开始:
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
至此完成!!!
欢迎大家一起讨论,共勉!!!
更多推荐
所有评论(0)