1. 程式人生 > >Dubbo系列之 (二)Registry註冊中心-註冊(2)

Dubbo系列之 (二)Registry註冊中心-註冊(2)

# 引導 本章主要介紹下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