RocketMQ单机支持1万以上的持久化队列,前提是足够的内存、硬盘空间,过期数据数据删除(RocketMQ中的消息队列长度不是无限的,只是足够大的内存+数据定时删除)
RocketMQ版本:3.1.4
一,部署NameServer:
1,安装JDK并设置JAVA_HOME环境变量(启动脚本依赖JAVA_HOME环境变量)
2,cd /alibaba-rocketmq/bin进入RocketMQ的bin目录
2,调用nohup sh mqnamesrv &启动NameServer
报错如下:
: command not found
: command not found
mqnamesrv: line 35: syntax error: unexpected end of file
在bin目录下调用dos2unix *将所有文件转化为unix格式,再次调用nohup sh mqnamesrv &
报错如下:
/home/hadoop/alibaba-rocketmq
Invalid initial heap size: -Xms4g
The specified size exceeds the maximum representable size.
Could not create the Java virtual machine.
由于安装的JDK版本为32位,4g超过了JDK所支持的最大内存,不过32位JDK也无法发挥出RocketMQ的优势,换成64位JDK
这次启动成功
[hadoop@hadoop bin]$ nohup sh mqnamesrv &
[1] 17676
[hadoop@hadoop bin]$ nohup: appending output to “nohup.out”
[hadoop@hadoop bin]$ cat nohup.out
The Name Server boot success.
[hadoop@hadoop bin]$ jps
17682 NamesrvStartup
17800 Jps
NameServer监听端口:9876
nettyServerConfig.setListenPort(9876);
如果服务器内存不够,可以修改runserver.sh脚本(mqnamesrv文件中通过runserver.sh脚本调用Name Server的主函数com.alibaba.rocketmq.namesrv.NamesrvStartup启动Name Server)中的JAVA_OPT_1参数