0-3 - 无法访问缓存路径
其它模块复用了 Common 层的基于文件的缓存机制(目前是元数据模块),而 Common 层的文件缓存机制无法访问它指定的目录。
2022-08-29 00:35:00,189 ERROR [org.apache.dubbo.common.cache.FileCacheStoreFactory:?] - [DUBBO] Cache store path can't be created: , dubbo version: , current host: 10.0.1.1, error code: 0-3. This may be caused by inaccessible of cache path, go to https://dubbo.apache.org/faq/0/3 to find instructions.
java.nio.file.FileAlreadyExistsException: [Path]
at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:87)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
at java.base/sun.nio.fs.WindowsFileSystemProvider.createDirectory(WindowsFileSystemProvider.java:521)
at java.base/java.nio.file.Files.createDirectory(Files.java:700)
at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:807)
at java.base/java.nio.file.Files.createDirectories(Files.java:753)
at org.apache.dubbo.common.cache.FileCacheStoreFactory.getInstance(FileCacheStoreFactory.java:90)
...
可能的原因
- 多个 Dubbo 进程(或其他 Java 进程)使用了同一个缓存文件。
- 由于缓存文件所在目录的文件系统权限问题,导致读写失败。
排查和解决步骤
- 根据下面显示的实际异常找到访问不了的目录,确定下它的文件访问权限。
- 确定下是否有别的 Dubbo 实例正在访问这个路径。
- 尝试配置 Java System Property(用 -D 配置的 Java 系统属性)
dubbo.meta.cache.filePath
和dubbo.mapping.cache.filePath
,将它指定成一个当前用户能够完全控制的目录下。
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.
最后修改 November 7, 2022: Update 3.md (#1587) (4357aed801)