解决Nacos protocol-raft.log 不停增长的问题
文章目录
问题描述
Nacos用了很久的1.4.4,最近升级到了2.x在使用过程中,发现日志文件protocol-raft.log会不停增长,占用了大量的硬盘空间。tail 了一下文件日志发现大量的 leader 选举错误日志,如下:
java.lang.IllegalStateException: Fail to get leader of group naming_service_metadata, Unknown leader
at com.alipay.sofa.jraft.core.CliServiceImpl.getPeers(CliServiceImpl.java:605)
at com.alipay.sofa.jraft.core.CliServiceImpl.getPeers(CliServiceImpl.java:498)
at com.alibaba.nacos.core.distributed.raft.JRaftServer.registerSelfToCluster(JRaftServer.java:353)
at com.alibaba.nacos.core.distributed.raft.JRaftServer.lambda$createMultiRaftGroup$0(JRaftServer.java:264)
at <unknown class>.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2023-09-21 06:03:33,746 INFO shutdown jraft server
解决方案
rm -rf /data/nacos/data/protocol/raft && ./docker-compose -f nacos.yml down && ./docker-compose -f nacos.yml up -d&& ./docker-compose -f nacos.yml logs -f
原因
因为 nacos 是通过 docker 方式启动,docker 启动时会分配一个随机 ip,而 nacos 2.x 之后引入了SofaJRaft单机部署也存在节点了,而且节点leader 信息会写入 nacos/data/protocol/raft 目录下,所以每次重启都会找不到上一次保存下来的leader,所以会导致 protocol-raft.log 不停增长。
每次重启 nacos 的 docker 时候提前删除掉旧的 raft 信息即可
参考
1.4.0版本 单机模式下 错误:code:503,msg:server is DOWN now, please try again later! #4210
评论 · 0
文章作者 pengxiaochao
上次更新 2023-09-21
许可协议 不允许任何形式转载。
还没有评论,写下第一条吧。