0-5 - 缓存文件大小超限
其它模块复用了 Common 层的基于文件的缓存机制(目前是元数据模块),而 Common 层的文件缓存机制 “发觉” 文件大小超限。
可能的原因
- 用户不合理地配置了 Java System Property (用 -D 配置的 Java 系统属性)
dubbo.mapping.cache.maxFileSize
或者dubbo.meta.cache.maxFileSize
- 缓存文件因文件系统或磁盘错误而被破坏。
dubbo.mapping.cache.maxFileSize
和dubbo.meta.cache.maxFileSize
没有显示默认值, 而根据org.apache.dubbo.common.cache.FileCacheStore.LimitedLengthBufferedWriter
的逻辑而查到的最大文件大小的默认值为:Long.MAX_VALUE
( 263-1 ) 。
排查和解决步骤
- 尝试重新配置上述 Java System Property(用 -D 配置的 Java 系统属性)。
- 删除缓存文件夹重启 Provider 和 Consumer (缓存文件夹的位置一般在
~/.dubbo
。如果配置了dubbo.meta.cache.filePath
和dubbo.mapping.cache.filePath
则为该路径)。 - 如果确实没有配置这些 System Property,请到 GitHub Issue Tracker 下发 Issue。
最后修改 December 16, 2022: Fix check (#1736) (97972c1)