系统环境
1、操作系统:64位CentOS Linux release 7.2.1511 (Core)
2、jdk版本:1.8.0_121
3、IP地址:192.168.1.210
下载rocketmq
访问网址:http://rocketmq.apache.org/docs/quick-start/,如下图:
我们下载编译好的,这样无需自己再编译了,省去很多时间。点击上图红色框的链接。
然后就进入网址:http://rocketmq.apache.org/release_notes/release-notes-4.3.2/。下载Binary版本的rocketmq,如下图:
我写这篇笔记的时候,最新版本为 rocketmq-all-4.3.2,我们选择编译好的zip包,即上图中红色框框标记的。
点击后进入真正的下载页面:
随便选择一个即可,进行下载。
拷贝到centos系统
创建/soft目录
[root@localhost ~]# mkdir /soft
将在windows系统下载好的zip包利用WinSCP工具拷贝到centos系统的/soft目录
解压rocketmq
[root@localhost data]# cd /soft
解压
[root@localhost soft]# unzip rocketmq-all-4.3.2-bin-release.zip
移动
[root@localhost soft]# mv rocketmq-all-4.3.2-bin-release /usr/local/rocketmq
设置rocketmq的环境变量
编辑profile文件
[root@localhost rocket]# vi /etc/profile
将下面的配置添加到文件最底部
export PATH=$PATH:/usr/local/rocketmq/bin
export NAMESRV_ADDR=localhost:9876
保存,并退出。
更新profile文件
[root@localhost rocket]# source /etc/profile
说明:export NAMESRV_ADDR=localhost:9876是NAMESRV_ADDR环境变量
启动Name Server
[root@localhost rocket]# mqnamesrv &
启动Broker
[root@localhost ~]# mqbroker -n localhost:9876 &
会遇到如下问题:
[1] 3361
[root@localhost ~]# 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@localhost ~]# cd /usr/local/rocketmq/bin/
[root@localhost bin]# vi runserver.sh
将JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
改成如下:
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"
[root@localhost bin]# vi runbroker.sh
将JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
改成JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m"
再次启动
[root@localhost bin]# mqbroker -n localhost:9876 &
会提示:
[root@localhost bin]# The broker[localhost.localdomain, 192.168.1.210:10911] boot success. serializeType=JSON and name server is localhost:9876
表示启动成功
关闭防火墙
[root@localhost bin]# systemctl stop firewalld.service
[root@localhost bin]# systemctl disable firewalld.service //关闭开机启动
关闭Name Server和Broker
[root@localhost bin]# mqshutdown broker
[root@localhost bin]# mqshutdown namesrv
示例就不提供了,可参考官网Demo:http://rocketmq.apache.org/docs/simple-example/