mq死循环的解决

首页 / 代码 / 正文

今天生产环境碰到了个磁盘空间写满的问题,nginx报错磁盘空间占用已满。
最终看到是因为后端处理mq消息的时候发生错误
mclqorsk.png
这个错误是因为oracle底层无法处理null值导致

原因的产生是因为程序接收到mq的消息后,想要处理,但是由于oracle底层无法正确处理并存储,所以导致报错写入日志,消息又回到队列导致死循环,让服务器日志暴增。

解决办法是在mq配置中加入对于无法处理的消息的处理机制

  rabbitmq:
    # 开发
    host: 
    port: 5672
    username: 
    password: 
    listener:
      simple:
        retry:
          enabled: true # 启用重试机制
          max-attempts: 5 # 最多重试3次
          initial-interval: 5000 # 首次重试间隔5秒
          multiplier: 1.0 # 重试间隔倍数
          max-interval: 15000 # 最大间隔15秒
无标签
打赏
评论区
头像