dubbo: AbstractRegistry lock problem
环境:
- suse linux
- dubbo 2.5.3
dubbo启动时会报:
2014-08-29 19:13:52,325 WARN com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry.doSaveProperties:221 - [DUBBO] Failed to save registry store file, cause: Can not lock the registry cache file /uniiof/tstusers/tstweg02/.dubbo/dubbo-registry-133.0.192.193.cache, ignore and retry later, maybe multi java process use the file, please config: dubbo.registry.file=xxx.properties, dubbo version: 2.5.3, current host: 127.0.0.1
java.io.IOException: Can not lock the registry cache file /uniiof/tstusers/tstweg02/.dubbo/dubbo-registry-133.0.192.193.cache, ignore and retry later, maybe multi java process use the file, please config: dubbo.registry.file=xxx.properties
at com.alibaba.dubbo.registry.support.AbstractRegistry.doSaveProperties(AbstractRegistry.java:193)
at com.alibaba.dubbo.registry.support.AbstractRegistry$SaveProperties.run(AbstractRegistry.java:150)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
从异常看,是多个线程都要写信息,导致不能获取锁,同时也不尝试再次获取
About this issue
- Original URL
- State: closed
- Created 10 years ago
- Comments: 15
@dudi123456 @Xiaobaxi 解决了,出现这个的原因是服务向ZK注册的同时,会缓存Consumer的列表,写入user.home/.dubbo/dubbo-registry-" + url.getHost() + ".cache 这个文件,当在同一个机器上启动多个Provider的时候,就会出现文件锁争用的问题,报上面这个错误。解决办法:服务模块各自缓存自己的cache文件,在<dubbo:registry />中加入 file=“dubboregistry/dubbo-registry.properties” ,这样就会在bin目录下生成dubboregistry这个目录,cache文件就缓存在这个里边了。