rocketmq如何修改存储路径

作者:东坡居士爱蹦迪 时间:2022-08-20 08:00:57 

一、下载rocketmq对应版本源码

修改消息存储路径需要修改rocketmq源码,因为rocketmq取的默认路径是user.home路径,也就是用户的根目录,如下所示

rocketmq如何修改存储路径

直接修改用户的user.home比较麻烦,我们打算直接修改源码里写死的路径,然后重新打包

下载rocketmq源码可以去GitHub,路径为https://github.com/apache/rocketmq

如果要下4.7.1版本的源码包可以选择对应release包

rocketmq如何修改存储路径

例如使用的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

rocketmq如何修改存储路径

三、重新打包

注意打包时要排除单元测试, 在源码根目录执行 mvn install -DskipTests

rocketmq如何修改存储路径

rocketmq如何修改存储路径

四、替换掉旧的jar包

打包完成后根据rocketmq运行需要替换对应的jar包,找到ROCKETMQ_HOME\lib目录,搜索rocket

rocketmq如何修改存储路径

根据这里的jar包名称,去刚刚打包好的项目源码目录去搜索,然后用打包好的新jar包替换掉原本的jar包,总共13个jar包需要替换,有些可能不需要替换,但是我没有仔细去排查,全部替换掉了,反正源码编译后和原来的一样

五、java启动参数新增mq.store

在项目里我们用mq.store替换掉了user.home,我们需要在启动参数里加入mq.store参数,以用于使用自定义的目录存储消息和日志

在rocketmq的bin目录下,找到并修改runbroker.cmd 和 runserver.cmd,如果是linux系统下使用,修改对应的.sh文件即可

rocketmq如何修改存储路径

rocketmq如何修改存储路径

六、修改日志文件路径

修改日志存放路径,需要修改如下文件,位于rocketmq的conf文件夹下

rocketmq如何修改存储路径

修改方式一样,都是在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

标签:rocketmq,存储,路径
0
投稿

猜你喜欢

  • Java中new关键字和newInstance方法的区别分享

    2022-12-04 03:12:52
  • Android多边形区域扫描线种子填充算法的示例

    2023-05-25 00:27:24
  • 如何查找YUM安装的JAVA_HOME环境变量详解

    2023-04-01 11:48:22
  • Android时间对话框TimePickerDialog详解

    2022-08-23 05:50:06
  • java常用工具类 Random随机数、MD5加密工具类

    2023-02-14 17:55:08
  • C#使用虚拟方法实现多态

    2023-01-01 05:21:08
  • java实现银行ATM管理系统

    2023-10-30 14:50:51
  • C#快速排序算法实例分析

    2023-06-17 00:30:00
  • Spring实例化bean的方式代码详解

    2022-04-04 08:46:09
  • 本地jvm执行flink程序带web ui的操作

    2022-09-03 20:49:00
  • JAVA提高第八篇 动态代理技术

    2023-07-19 07:13:12
  • winform壁纸工具为图片添加当前月的日历信息

    2022-03-05 07:23:01
  • c#创建windows服务入门教程实例

    2023-02-24 11:31:31
  • Android中Listview点击item不变颜色及设置listselector 无效的解决方案

    2022-07-04 23:49:10
  • java 对象参数去空格方式代码实例

    2023-11-27 09:49:34
  • Android中利用xml文件布局修改Helloworld程序

    2023-10-24 08:45:05
  • 关于Android的 DiskLruCache磁盘缓存机制原理

    2022-12-16 16:57:43
  • C++实现softmax函数的面试经验

    2023-06-16 02:07:47
  • java int类型二维数组实现“杨辉三角”的完整实例

    2022-10-05 19:31:49
  • Eclipse+Java+Swing+Mysql实现工资管理系统

    2023-07-26 08:51:05
  • asp之家 软件编程 m.aspxhome.com