安装Rocketmq主服务器
1.安装支持解压ZIP的工具
yum install -y unzip zip
2.解压rocketmq
[root@app01 software]# unzip rocketmq-all-4.4.0-bin-release.zip
[root@app01 software]# mv rocketmq-all-4.4.0-bin-release /opt/
3.创建软连接
[root@app01 software]# cd /opt
[root@app01 opt]# ln -s rocketmq-all-4.4.0-bin-release rocketmq
4.设置rocketmq的环境变量
编辑profile文件
[root@app01 rocket]# vi /etc/profile
将下面的配置添加到文件最底部
export PATH=$PATH:/opt/rocketmq/bin
export NAMESRV_ADDR=10.255.29.29:9876
保存,并退出。
[root@app01 rocket]# source /etc/profile
说明:export NAMESRV_ADDR=10.255.29.29:9876是NAMESRV_ADDR环境变量
5.启动Name Server
其中“&”是指,在后台运行
[root@app01 rocket]# mqnamesrv &
查看进程是否存在
[root@app01 rocket]# ps -ef|grep rocketmq
或者
[root@app01 rocket]# netstat -ntlp|grep rocketmq
或者 因为 rocketmq使用Java编写的
[root@app01 rocket]# netstat -ntlp|grep java
6.启动Broker
在bin目录下启动:./mqbroker -n 10.255.29.29:9876 &
会遇到如下问题:
[root@app01~]# Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 8589934592 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /root/hs_err_pid3368.log
原因是:bin/ 下的服务启动脚本 runserver.sh 、runbroker.sh 中对于内存的限制
解决办法:
[root@app01 ~]# cd /opt/rocketmq/bin/
修改runserver.sh的内存配置:
[root@app01 bin]# vi runserver.sh
将JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
改成:
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"
修改runbroker.sh的内存配置:
[root@app01 bin]# vi runbroker.sh
将JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
改成JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g-Xmn512m"
注意:
修改的内存不宜过大,内存赋予的太多,会给垃圾回收时造成负担,内存赋予的太少,会造成内存溢出,一般“-Xms1g -Xmx1g-Xmn512m”是相对合理的组合。
再次启动
[root@app01 bin]# mqbroker -n 10.255.29.29:9876 &
会提示:
[root@app01 bin]# The broker[localhost.localdomain, 192.168.1.210:10911] boot success. serializeType=JSON and name server is localhost:9876
表示启动成功
7.关闭防火墙
[root@app01 bin]# systemctl stop firewalld
8.关闭
[root@app01 bin]# ./mqshutdown namesrv
[root@app01 bin]# ./mqshutdown broker