RocketMQ安装内存不足的问题

这是因为bin 目录下启动 nameserv 与 broker 的 runbroker.sh 和 runserver.sh 文件中默认分配的内存太大,rocketmq比较耗内存,所以默认分配的内存比较大,而系统实际内存却太小导致启动失败, 通常像虚拟机上安装的 CentOS 服务器内存可能是没有高的,只能调小。实际中应该根据服务器内存情况,配置一个合适的值

# 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: 
# /data/program/rocketmq-all-4.5.0-bin-release/bin/hs_err_pid6465.log

解决办法

修改runbroker.sh和runbroker.sh

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512g" 
Xms 是指设定程序启动时占用内存大小。一般来讲,大点,程序会启动的快一点,但是也可能会导致机器暂时
间变慢。
Xmx 是指设定程序运行期间最大可占用的内存大小。如果程序运行需要占用更多的内存,超出了这个设置值, 
就会抛出OutOfMemory异常。
xmn 年轻代的heap大小,一般设置为Xmx的3、4分之一

 
停止服务 

【sh bin/mqshutdown broker】 //停止 brokersh 

【bin/mqshutdown namesrv】 //停止 nameserver 

停止服务的时候需要注意,要先停止broker,其次停止nameserver。

broker.conf文件 

默认情况下,启动broker会加载conf/broker.conf文件,这个文件里面就是一些常规的配置信息

namesrvAddr //nameserver地址

brokerCl usterName //Cluster名称,如果集群机器数比较多,可以分成多个cluster,每个cluster提供
给不同的业务场景使用

brokerName //broker名称,如果配置主从模式,master和slave需要配置相同的名称来表名关系

brokerId=0 //在主从模式中,一个master broker可以有多个slave,0表示master,大于0表示不同
slave的id 

brokerRole=SYNC_MASTER/ASYNC_MASTER/SLAVE ; 同步表示slave和master消息同步完成后再返回
信息给客户端

autoCreateTopicEnable = true ; topic不存在的情况下自动创建

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值