RocketMQ4.5.2 修改mqnamesrv 和 mqbroker的日志路徑操作
此解決方案是針對(duì)window的,因?yàn)槿罩灸J(rèn)保存路徑在C盤(pán),linux忽略。
學(xué)習(xí)RocketMQ過(guò)程中,總是出現(xiàn)
com.alibaba.rocketmq.client.exception.MQBrokerException: CODE: 14 DESC: service not available now, maybe disk full, CL: 0.87 CQ: 0.87 INDEX: 0.87, maybe your broker machine memory too small.
這個(gè)異常。開(kāi)始的時(shí)候上網(wǎng)查了一下擴(kuò)大mqnamesrv and broker 的運(yùn)存:
如下圖是mqnamesrv的啟動(dòng)文件(runserver.cmd)

如下圖是mqbroker的啟動(dòng)文件(runbroker.cmd)

我只是發(fā)送了幾條數(shù)據(jù),就報(bào)異常了,2G運(yùn)存不可能承受不了幾條數(shù)據(jù)的,所以考慮硬盤(pán)存儲(chǔ)問(wèn)題。
現(xiàn)在開(kāi)始修改需要更改的日志保存路徑
1.去gitbug,搜索RocketMQ,下載RocketMq源碼。
注意是RocketMQ4.5.2版本,舊版本主要是xml文件配置日志的(有需要的朋友也可以私聊我要解決方案)
2.找到ClientLogger類(lèi)
該類(lèi)配置了發(fā)送端服務(wù)保存日志的位置,把user.home,更改為rq.logdir。

3.找到MessageStoreConfig類(lèi)
該類(lèi)定義了mqbroker的日志保存路徑。同樣的把user.home更改為rq.logdir,該路徑是主要造成內(nèi)存不足的問(wèn)題,初始的時(shí)候就占用了2G的內(nèi)存。

4.對(duì)以上兩個(gè)項(xiàng)目重新maven install
找到rocketmq安裝目錄的lib目錄,這里存放了運(yùn)行中需要的jar。

把剛剛重新打包的替換掉。
5.因?yàn)閞q.logdir是自定義的JVM系統(tǒng)屬性
所以需要啟動(dòng)mqname,mqbroker的時(shí)候就要設(shè)置這兩個(gè)屬性。
進(jìn)入bin文件夾,編輯runserver.cmd

runbroker.cms也是同樣的操作就不展示了。
6.進(jìn)入conf文件夾
修改
這三個(gè)xml的日志保存路徑。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
從內(nèi)存地址解析Java的static關(guān)鍵字的作用
這篇文章主要介紹了從內(nèi)存地址解析Java的static關(guān)鍵字的作用,包括靜態(tài)成員變量和靜態(tài)方法等重要內(nèi)容,需要的朋友可以參考下2015-10-10
springboot如何初始化執(zhí)行sql語(yǔ)句
這篇文章主要介紹了springboot初始化執(zhí)行sql語(yǔ)句的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Java中Spock框架Mock對(duì)象的方法經(jīng)驗(yàn)總結(jié)
這篇文章主要分享了Spock框架Mock對(duì)象的方法經(jīng)驗(yàn)總結(jié),下文分享一些常用項(xiàng)目實(shí)戰(zhàn)說(shuō)明以及代碼,供大家項(xiàng)目中參考,也具有一的的參考價(jià)值,需要的小伙伴可以參考一下2022-02-02
SpringCloud-Spring?Boot?Starter使用測(cè)試及問(wèn)題小結(jié)
Spring?Boot?Starter?是在?SpringBoot?組件中被提出來(lái)的一種概念、簡(jiǎn)化了很多煩瑣的配置、通過(guò)引入各種?Spring?Boot?Starter?包可以快速搭建出一個(gè)項(xiàng)目的腳手架,這篇文章主要介紹了SpringCloud-Spring?Boot?Starter使用測(cè)試,需要的朋友可以參考下2022-07-07
詳解Spring Boot 中實(shí)現(xiàn)定時(shí)任務(wù)的兩種方式
這篇文章主要介紹了Spring Boot 中實(shí)現(xiàn)定時(shí)任務(wù)的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
spring動(dòng)態(tài)控制定時(shí)任務(wù)的實(shí)現(xiàn)
在實(shí)際項(xiàng)目中,經(jīng)常需要?jiǎng)討B(tài)的控制定時(shí)任務(wù),比如通過(guò)接口增加、啟動(dòng)、停止、刪除定時(shí)任務(wù),本文主要介紹了spring動(dòng)態(tài)控制定時(shí)任務(wù)的實(shí)現(xiàn),感興趣的可以了解一下2024-01-01
Springboot+Bootstrap實(shí)現(xiàn)增刪改查實(shí)戰(zhàn)
這篇文章主要介紹了Springboot+Bootstrap實(shí)現(xiàn)增刪改查實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
java多線(xiàn)程編程之InheritableThreadLocal
這篇文章主要為大家詳細(xì)介紹了java多線(xiàn)程編程之InheritableThreadLocal,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10

