1. dubbo Can not lock the registry cache file:
當本地同時啟動服務端和客戶端的時候就可能產生這個問題。
解決方案
Dubbo通過注冊中心發現服務,發現的服務Dubbo同時也會保存到本地緩存一份,緩存的好處有很多,比如不需要每次使用的時候都通過注冊中心獲取,注冊中心不可用了,不影響消費端的調用,
因為本地緩存了一份服務提供者列表。Dubbo本地緩存默認采用的文件,會根據注冊中心自動在當前用戶目錄下生成一個緩存文件,類似/home/newad/.dubbo/dubbo-registry-*.*.*.*.cache,
星號表示注冊中心的IP地址,當同一台機器上同時啟動多個進程,就會出現多個進程爭奪此文件的寫入權限,觖此問題的方法也很簡單,日志里面都說了重新配置一下這個緩存文件就。
主要在啟動腳本里面添加配置: -Ddubbo.registry.file=C:\Users\dell.dubbo\dubbo-registry-192.168.1.62-junit.cache 文件名自己配置一個
-Ddubbo.registry.file=C:\Users\dell.dubbo\dubbo-registry-192.168.1.62-junit.cache
參見:http://ask.csdn.net/questions/233826
出現java.io.IOException: Can not lock the registry cache file /home/deployer/.dubbo/dubbo-registry-xxxxx.cache, ignore and retry later的問題解決方法
這個問題的出現是因為dubbo在用戶目錄下使用一個文件來緩存注冊中心的服務提供者的信息,那么在使用前會加上文件鎖,所以再一次使用這個文件是獲取鎖就會失敗,解決的方式是:
1:確認應用內只有一個<registry>標簽,不同文件的情況下,也只能有一個
2:在<registry>標簽內指定一個文件,使用file屬性 <registry address="xxx" file="xxx"/>
參見:http://www.cnblogs.com/it-zhoujian/p/4326087.html