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不存在的情況下自動創建
?
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的RocketMQ安装内存不足的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单机环境RocketMQ的安装
- 下一篇: 消息发送和接收基本应用