引用

现在日常开发中MQ的使用成了许多公司选择,常见的有“ActiveMQ、RabbitMQ、RocketMQ、Kafka”。

由于使用rocketmq-client会生成一个rocketmq_client.log日志文件,一般默认存于系统盘内,且持续增长速度较快,为便于清理且避免影响操作系统资源使用,建议手动设置其日志存储路径为当前程序运行目录下的logs文件夹

问题点

由于项目中需要同步A系统数据到其他系统,所以我们使用了RocketMQ的广播形势来将A系统的数据同步到其他系统,但是日均同步的数量达到了三万次。久而久之就出现了服务器磁盘空间不足影响系统的使用,所以检查了服务器发现MQ的日志没有定时清理一直积压在服务器内部。

解决

  1. 可以在服务器内部使用定时脚本来清理日志
  2. 系统启动时代码显式设置全局变量“rocketmq.client.logRoot
  3. 修改rocketmq客户端代码
系统启动时代码显式设置全局变量“rocketmq.client.logRoot

示例:

System.setProperty("rocketmq.client.logRoot","logs/");

Springboot项目可在启动类的main方法中设置,已验证有效。注意:必须放在run()方法前面,否则不生效
示例:

 public static void main(String[] args) throws Throwable {
    System.setProperty("rocketmq.client.logRoot","logs/"); 
    SpringApplication.run(Application.class, args);
 }

rocketmq-client 日志问题处理

使用rocketmq后,默认会在{user.home}/logs/rocketmqlogs 目录下生成大量的mq跟踪日志,可以通过以下方式禁用或改变存储目录

方式一: rocketmq启用slf4j【推荐】

#设置系统属性

rocketmq.client.logUseSlf4j=true

启动参数 添加:

 -Drocketmq.client.logUseSlf4j=true 【推荐】 

或者启动类添加:

System.setProperty("rocketmq.client.logUseSlf4j","true") 
logback日志配置
#Rocketmq apppender配置
<appender name="RocketmqClientAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.base}/rocketmq.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.base}/%d{yyyy-MM-dd}/rocketmq-%i.%d{yyyy-MM-dd}.log.gz
</fileNamePattern>
<TimeBasedFileNamingAndTriggeringPolicy 
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<MaxFileSize>30MB</MaxFileSize>
</TimeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>${pattern}</pattern>
</encoder>
</appender>

#Rocketmq logger配置
<logger name="RocketmqClient" additivity="false">
<level value="warn" />
<appender-ref ref="RocketmqClientAppender"/>
</logger>
方式二: 更改默认rocketmq路劲和级别

设置系统属性

rocketmq.client.logRoot={日终路径}
rocketmq.client.logLevel={日志等级}

建议启动参数添加:

-Drocketmq.client.logRoot=/opt/appl/tomcat/logs/{应用名} -Drocketmq.client.logLevel=warn

查看消息积压

在主题的消费者管理里面
代理者位点:生产者发送数量
消费者位点:消费者接受数量
差值:消息积压数量
在这里插入图片描述

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐