rocketmq如何修改存儲(chǔ)路徑
一、下載rocketmq對(duì)應(yīng)版本源碼
修改消息存儲(chǔ)路徑需要修改rocketmq源碼,因?yàn)閞ocketmq取的默認(rèn)路徑是user.home路徑,也就是用戶(hù)的根目錄,如下所示

直接修改用戶(hù)的user.home比較麻煩,我們打算直接修改源碼里寫(xiě)死的路徑,然后重新打包
下載rocketmq源碼可以去GitHub,路徑為https://github.com/apache/rocketmq
如果要下4.7.1版本的源碼包可以選擇對(duì)應(yīng)release包

例如使用的rocketmq版本為4.7.1,則下載路徑為https://github.com/apache/rocketmq/tree/release-4.7.1
二、全局替換user.home參數(shù)為mq.store
我們用自定義參數(shù)mq.store代替默認(rèn)的user.home,全局替換user.home為mq.store

三、重新打包
注意打包時(shí)要排除單元測(cè)試, 在源碼根目錄執(zhí)行 mvn install -DskipTests


四、替換掉舊的jar包
打包完成后根據(jù)rocketmq運(yùn)行需要替換對(duì)應(yīng)的jar包,找到ROCKETMQ_HOME\lib目錄,搜索rocket

根據(jù)這里的jar包名稱(chēng),去剛剛打包好的項(xiàng)目源碼目錄去搜索,然后用打包好的新jar包替換掉原本的jar包,總共13個(gè)jar包需要替換,有些可能不需要替換,但是我沒(méi)有仔細(xì)去排查,全部替換掉了,反正源碼編譯后和原來(lái)的一樣
五、java啟動(dòng)參數(shù)新增mq.store
在項(xiàng)目里我們用mq.store替換掉了user.home,我們需要在啟動(dòng)參數(shù)里加入mq.store參數(shù),以用于使用自定義的目錄存儲(chǔ)消息和日志
在rocketmq的bin目錄下,找到并修改runbroker.cmd 和 runserver.cmd,如果是linux系統(tǒng)下使用,修改對(duì)應(yīng)的.sh文件即可


六、修改日志文件路徑
修改日志存放路徑,需要修改如下文件,位于rocketmq的conf文件夾下

修改方式一樣,都是在logback文件的<configuration>節(jié)點(diǎn)里新增<properties>節(jié)點(diǎn),在節(jié)點(diǎn)里配置rocketmq統(tǒng)一的日志存放路徑,例如上文配置的是 D:\RocketMQ目錄,
這里配置為
<property name="MQ_STORE" value="D:\RocketMQ" />
然后替換文件內(nèi)所有的user.home,為MQ_STORE
<configuration>
<property name="MQ_STORE" value="D:\RocketMQ" />
<appender name="DefaultAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${MQ_STORE}/rocketmqlogs/broker_default.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${MQ_STORE}/rocketmqlogs/otherdays/broker_default.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="RocketmqBrokerAppender_inner"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${MQ_STORE}/rocketmqlogs/broker.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${MQ_STORE}/rocketmqlogs/otherdays/broker.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>20</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>128MB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yyy-MM-dd HH:mm:ss,GMT+8} %p %t - %m%n</pattern>
<charset class="java.nio.charset.Charset">UTF-8</charset>
</encoder>
</appender>
<appender name="RocketmqBrokerAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RocketmqBrokerAppender_inner"/>
</appender>
......
七、編寫(xiě)一鍵啟動(dòng)文件
新建文本文件 start-rocketmq,修改后綴為.bat,內(nèi)容如下,先后啟動(dòng)nameserver 和 broker
start mqnamesrv.cmd start mqbroker.cmd -c ../conf/broker.conf namesrvAddr=127.0.0.1:9876 brokerIP1=127.0.0.1 autoCreateTopicEnable=true &
八、啟動(dòng)驗(yàn)證
記得如果要外部訪問(wèn),上面的IP要改成局域網(wǎng)的ip,另外要對(duì)外開(kāi)放 9876 10909 10911端口
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java用靜態(tài)工廠代替構(gòu)造函數(shù)使用方法和優(yōu)缺點(diǎn)
這篇文章主要介紹了java用靜態(tài)工廠代替構(gòu)造函數(shù)使用方法和優(yōu)缺點(diǎn),需要的朋友可以參考下2014-02-02
SpringMVC如何獲取多種類(lèi)型數(shù)據(jù)響應(yīng)
這篇文章主要介紹了SpringMVC如何獲取多種類(lèi)型數(shù)據(jù)響應(yīng),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11
SpringBoot?整合mybatis+mybatis-plus的詳細(xì)步驟
這篇文章主要介紹了SpringBoot?整合mybatis+mybatis-plus的步驟,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
關(guān)于springboot忽略接口,參數(shù)注解的使用ApiIgnore
這篇文章主要介紹了關(guān)于springboot忽略接口,參數(shù)注解的使用ApiIgnore,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
Java異常處理之try...catch...語(yǔ)句的使用進(jìn)階
這篇文章主要介紹了Java異常處理之try...catch...語(yǔ)句的使用進(jìn)階,重點(diǎn)在于牽扯相關(guān)IO使用時(shí)的資源調(diào)配情況,需要的朋友可以參考下2015-11-11

