rocketmq如何修改存储路径
作者:东坡居士爱蹦迪 时间:2022-08-20 08:00:57
一、下载rocketmq对应版本源码
修改消息存储路径需要修改rocketmq源码,因为rocketmq取的默认路径是user.home路径,也就是用户的根目录,如下所示
直接修改用户的user.home比较麻烦,我们打算直接修改源码里写死的路径,然后重新打包
下载rocketmq源码可以去GitHub,路径为https://github.com/apache/rocketmq
如果要下4.7.1版本的源码包可以选择对应release包
例如使用的rocketmq版本为4.7.1,则下载路径为https://github.com/apache/rocketmq/tree/release-4.7.1
二、全局替换user.home参数为mq.store
我们用自定义参数mq.store代替默认的user.home,全局替换user.home为mq.store
三、重新打包
注意打包时要排除单元测试, 在源码根目录执行 mvn install -DskipTests
四、替换掉旧的jar包
打包完成后根据rocketmq运行需要替换对应的jar包,找到ROCKETMQ_HOME\lib目录,搜索rocket
根据这里的jar包名称,去刚刚打包好的项目源码目录去搜索,然后用打包好的新jar包替换掉原本的jar包,总共13个jar包需要替换,有些可能不需要替换,但是我没有仔细去排查,全部替换掉了,反正源码编译后和原来的一样
五、java启动参数新增mq.store
在项目里我们用mq.store替换掉了user.home,我们需要在启动参数里加入mq.store参数,以用于使用自定义的目录存储消息和日志
在rocketmq的bin目录下,找到并修改runbroker.cmd 和 runserver.cmd,如果是linux系统下使用,修改对应的.sh文件即可
六、修改日志文件路径
修改日志存放路径,需要修改如下文件,位于rocketmq的conf文件夹下
修改方式一样,都是在logback文件的<configuration>节点里新增<properties>节点,在节点里配置rocketmq统一的日志存放路径,例如上文配置的是 D:\RocketMQ目录,
这里配置为
<property name="MQ_STORE" value="D:\RocketMQ" />
然后替换文件内所有的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>
......
七、编写一键启动文件
新建文本文件 start-rocketmq,修改后缀为.bat,内容如下,先后启动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 &
八、启动验证
记得如果要外部访问,上面的IP要改成局域网的ip,另外要对外开放 9876 10909 10911端口
来源:https://blog.csdn.net/aaronmer/article/details/109489414
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
SpringBoot如何读取war包jar包和Resource资源
java导出生成word的简单方法
java中获取json的所有key方法
使用SpringBoot开发Restful服务实现增删改查功能
![](https://img.aspxhome.com/file/2023/8/61658_0s.png)
Java读取Properties文件的七种方法的总结
四种引用类型在JAVA Springboot中的使用详解
![](https://img.aspxhome.com/file/2023/4/60554_0s.png)
使用JavaWeb webSocket实现简易的点对点聊天功能实例代码
Spring超详细讲解创建BeanDefinition流程
![](https://img.aspxhome.com/file/2023/0/59940_0s.png)
详解Java的MyBatis框架与Spring框架整合中的映射器注入
Java 序列化和反序列化实例详解
使用反射方式获取JPA Entity的属性和值
Java实现简单员工管理系统
![](https://img.aspxhome.com/file/2023/2/60932_0s.jpg)
Java二分查找算法实现代码实例
一文搞懂Mybatis-plus的分页查询操作
java利用数组随机抽取幸运观众
![](https://img.aspxhome.com/file/2023/0/59400_0s.jpg)
Android用过TextView实现跑马灯效果的示例
如何处理maven仓库中后缀LastUpdated文件
SpringBoot中@Import注解如何正确使用
![](https://img.aspxhome.com/file/2023/7/57707_0s.png)
解决springmvc关于前台日期作为实体类对象参数类型转换错误的问题
![](https://img.aspxhome.com/file/2023/3/60813_0s.png)
Java使用设计模式中的工厂方法模式实例解析
![](https://img.aspxhome.com/file/2023/4/61054_0s.jpg)