0-5 - 缓存文件大小超限

0-5 - 缓存文件大小超限

其它模块复用了 Common 层的基于文件的缓存机制(目前是元数据模块),而 Common 层的文件缓存机制 “发觉” 文件大小超限。

可能的原因

  1. 用户不合理地配置了 Java System Property (用 -D 配置的 Java 系统属性) dubbo.mapping.cache.maxFileSize 或者 dubbo.meta.cache.maxFileSize
  2. 缓存文件因文件系统或磁盘错误而被破坏。

dubbo.mapping.cache.maxFileSizedubbo.meta.cache.maxFileSize 没有显示默认值, 而根据 org.apache.dubbo.common.cache.FileCacheStore.LimitedLengthBufferedWriter 的逻辑而查到的最大文件大小的默认值为:Long.MAX_VALUE ( 263-1 ) 。

排查和解决步骤

  1. 尝试重新配置上述 Java System Property(用 -D 配置的 Java 系统属性)
  2. 删除缓存文件夹重启 ProviderConsumer (缓存文件夹的位置一般在 ~/.dubbo。如果配置了 dubbo.meta.cache.filePathdubbo.mapping.cache.filePath 则为该路径)。
  3. 如果确实没有配置这些 System Property,请到 GitHub Issue Tracker 下发 Issue。