Dubbo系列之 (二)Registry註冊中心-註冊(2)
阿新 • • 發佈:2020-08-13
# 引導
本章主要介紹下AbstractRegistry、FailbackRegistry的作用和原始碼。
# AbstractRegistry
首先,直接引出這個類的作用,該類主要把服務提供者資訊快取本地檔案上,檔案目錄是:當前使用者目錄下的/.dubbo/dubbo-registry-${application}-${hos}-${port}.cache。
在解讀原始碼前,先閱讀下AbstractRegistry類的成員變數,從成員變數中可以看到這個類是怎麼完成資料的本地化儲存的。
```
// URL 地址分隔符
private static final char URL_SEPARATOR = ' ';
//URL地址正則表示式,任何空白符
private static final String URL_SPLIT = "\\s+";
// 引數儲存到本地檔案的最大重試次數
private static final int MAX_RETRY_TIMES_SAVE_PROPERTIES = 3;
// 需要儲存的引數
private final Properties properties = new Properties();
// 儲存執行緒,可以看出是否非同步儲存
private final ExecutorService registryCacheExecutor = Executors.newFixedThreadPool(1, new NamedThreadFactory("DubboSaveRegistryCache", true));
// 是否同步儲存
private boolean syncSaveFile;
// 上一次儲存的版本,每次儲存更新+1
private final AtomicLong lastCacheChanged = new AtomicLong();
// 儲存重試的次數
private final AtomicInteger savePropertiesRetryTimes = new AtomicInteger();
// 服務註冊的URL儲存在這裡
private f