源碼流程:
1甲献、遍歷yaml配置的namespaces
2醒第、每個(gè)namespace創(chuàng)建對(duì)應(yīng)的config
3谜酒、第一次去遠(yuǎn)程同步,拿到apollo配置信息肢专。this.trySync();
1本姥、先從http://dev.com:8080注冊(cè)中心拿到apollo-configservice的ip地址172.2.1.1.2:8080
2肩袍、再拿這個(gè)ip地址+namespace拼成http://172.2.1.1.2:8080/configs/admin-server/default/application?ip=172.2.2.3
3、拿拼好鏈接去請(qǐng)求apollo查詢配置信息
4婚惫、定時(shí)刷新氛赐。this.schedulePeriodicRefresh();
5、長(zhǎng)輪詢刷新先舷,獲取Apollo配置艰管。 this.scheduleLongPollingRefresh();
6、將拿到的apollo配置信息寫到了Spring的類ConfigurableEnvironment中蒋川,供項(xiàng)目使用牲芋。environment.getPropertySources().addFirst(composite);
7、后面就可以通過(guò)Environtment.getProperty()獲取apollo中的屬性捺球,Environment中還加入了別的propertySources缸浦,也都可以用Environment獲取
參考博客:
1、https://blog.csdn.net/xl649138628/article/details/122061806
2氮兵、https://blog.csdn.net/hhj13978064496/article/details/83031806