rocketmq如何修改存储路径

 更新时间:2021年07月03日 10:21:20   作者:东坡居士爱蹦迪  
这篇文章主要介绍了rocketmq如何修改存储路径的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

一、下载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端口

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java用静态工厂代替构造函数使用方法和优缺点

    java用静态工厂代替构造函数使用方法和优缺点

    这篇文章主要介绍了java用静态工厂代替构造函数使用方法和优缺点,需要的朋友可以参考下
    2014-02-02
  • Java中的final关键字深入理解

    Java中的final关键字深入理解

    这篇文章主要介绍了Java中的final关键字深入理解的相关资料,需要的朋友可以参考下
    2017-02-02
  • 微信小程序与Java后端接口交互

    微信小程序与Java后端接口交互

    本文主要介绍了微信小程序与Java后端接口交互,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • SpringMVC如何获取多种类型数据响应

    SpringMVC如何获取多种类型数据响应

    这篇文章主要介绍了SpringMVC如何获取多种类型数据响应,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11
  • SpringBoot 整合mybatis+mybatis-plus的详细步骤

    SpringBoot 整合mybatis+mybatis-plus的详细步骤

    这篇文章主要介绍了SpringBoot 整合mybatis+mybatis-plus的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • Java中final关键字的深入探究

    Java中final关键字的深入探究

    这篇文章主要给大家介绍了关于Java中final关键字的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • java音乐播放器编写源码

    java音乐播放器编写源码

    这篇文章主要为大家详细介绍了java音乐播放器的编写源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 关于springboot忽略接口,参数注解的使用ApiIgnore

    关于springboot忽略接口,参数注解的使用ApiIgnore

    这篇文章主要介绍了关于springboot忽略接口,参数注解的使用ApiIgnore,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • java递归实现科赫雪花

    java递归实现科赫雪花

    这篇文章主要为大家详细介绍了java递归实现科赫雪花,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Java异常处理之try...catch...语句的使用进阶

    Java异常处理之try...catch...语句的使用进阶

    这篇文章主要介绍了Java异常处理之try...catch...语句的使用进阶,重点在于牵扯相关IO使用时的资源调配情况,需要的朋友可以参考下
    2015-11-11

最新评论