欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解讀nacos獲取配置文件的大致過程

 更新時(shí)間:2024年07月15日 09:32:26   作者:jsenht  
這篇文章主要介紹了nacos獲取配置文件的大致過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、spring 體系相關(guān)類

(主要借助spring的api,自動(dòng)注入配置信息)

com.alibaba.nacos.spring.core.env.AbstractNacosPropertySourceBuilder
com.alibaba.nacos.spring.core.env.NacosPropertySourcePostProcessor
com.alibaba.nacos.spring.util.config.NacosConfigLoader

主要是將ConfigService(實(shí)現(xiàn)類NacosConfigService)

獲取的配置信息添加到environment.getPropertySources()

二、配置

1、獲取配置文件

獲取配置文件由ConfigService的getConfig接口提供,

實(shí)現(xiàn)類的核心流程就是根據(jù)配置的nacos地址使用,當(dāng)然會(huì)有一些優(yōu)先級(jí)之類的處理

網(wǎng)絡(luò)請(qǐng)求由com.alibaba.nacos.client.config.impl.ClientWorker的getServerConfig處理

(getServerConfig->HttpAgent(MetricsHttpAgent)->HttpAgent(ServerHttpAgent)->HttpSimpleClient->HttpURLConnection);

2、監(jiān)聽配置更新

拉取數(shù)據(jù)其實(shí)是在NacosConfigService創(chuàng)建的時(shí)候就開始的

NacosConfigService創(chuàng)建的時(shí)候

Nacos創(chuàng)建ClientWorker成員變量

worker = new ClientWorker(agent, configFilterChainManager);

然后在worker的構(gòu)造函數(shù)啟動(dòng)time task:

        executor.scheduleWithFixedDelay(new Runnable() {
            public void run() {
                try {
                    checkConfigInfo();
                } catch (Throwable e) {
                    log.error(agent.getName(), "NACOS-XXXX", "[sub-check] rotate check error", e);
                }
            }
        }, 1L, 10L, TimeUnit.MILLISECONDS);


executorService.execute(new LongPollingRunnable(i));


List<String> changedGroupKeys = checkUpdateDataIds(cacheDatas, inInitializingCacheList);

checkUpdateConfigStr(sb.toString(), isInitializingCacheList)

checkUpdateConfigStr最終會(huì)調(diào)用http請(qǐng)求,http請(qǐng)求將本地配置文件的md5計(jì)算后傳給nacos服務(wù)器,服務(wù)器根據(jù)MD5

計(jì)算返回變動(dòng)了的配置文件的列表,client在根據(jù)這個(gè)結(jié)果拉取配置文件,

nacos的配置監(jiān)聽使用異步 Servlet 技術(shù),默認(rèn)在配置相同的情況下,會(huì)等待30秒,不然會(huì)立刻獲取配置信息

com.alibaba.nacos.config.server.controller.ConfigServletInner

nacos在這里處理異步返回的結(jié)果

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot接口實(shí)現(xiàn)百萬并發(fā)的代碼示例

    SpringBoot接口實(shí)現(xiàn)百萬并發(fā)的代碼示例

    隨著互聯(lián)網(wǎng)的發(fā)展,越來越多的應(yīng)用需要支持高并發(fā),在這種情況下,如何實(shí)現(xiàn)高并發(fā)成為了一個(gè)重要的問題,Spring Boot是一個(gè)非常流行的Java框架,它提供了很多方便的功能來支持高并發(fā),本文將介紹如何使用Spring Boot來實(shí)現(xiàn)百萬并發(fā)
    2023-10-10
  • 完美解決gson將Integer默認(rèn)轉(zhuǎn)換成Double的問題

    完美解決gson將Integer默認(rèn)轉(zhuǎn)換成Double的問題

    下面小編就為大家?guī)硪黄昝澜鉀Qgson將Integer默認(rèn)轉(zhuǎn)換成Double的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Java中parallelStream().forEach()的踩坑日記

    Java中parallelStream().forEach()的踩坑日記

    本文主要介紹了Java中parallelStream().forEach()的踩坑日記,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Tomcat服務(wù)無法啟動(dòng)的問題的解決方法

    Tomcat服務(wù)無法啟動(dòng)的問題的解決方法

    這篇文章主要介紹了Tomcat服務(wù)無法啟動(dòng)的問題的解決方法,需要的朋友可以參考下
    2014-02-02
  • springsecurity第三方授權(quán)認(rèn)證的項(xiàng)目實(shí)踐

    springsecurity第三方授權(quán)認(rèn)證的項(xiàng)目實(shí)踐

    Spring security 是一個(gè)強(qiáng)大的和高度可定制的身份驗(yàn)證和訪問控制框架,本文主要介紹了springsecurity第三方授權(quán)認(rèn)證的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣可以了解一下
    2023-08-08
  • SpringBoot?攔截器返回false顯示跨域問題

    SpringBoot?攔截器返回false顯示跨域問題

    這篇文章主要介紹了SpringBoot?攔截器返回false顯示跨域問題,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,需要的小伙伴可以參考一下
    2022-04-04
  • Java 隨機(jī)生成任意組電話號(hào)碼過程解析

    Java 隨機(jī)生成任意組電話號(hào)碼過程解析

    這篇文章主要介紹了Java 隨機(jī)生成任意組電話號(hào)碼過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • java應(yīng)用開發(fā)之JVM運(yùn)行時(shí)內(nèi)存分析

    java應(yīng)用開發(fā)之JVM運(yùn)行時(shí)內(nèi)存分析

    這篇文章主要介紹了java應(yīng)用開發(fā)之JVM運(yùn)行時(shí)內(nèi)存,文中附含圖文示例內(nèi)容分析非常簡要,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Springboot敏感字段脫敏的實(shí)現(xiàn)思路

    Springboot敏感字段脫敏的實(shí)現(xiàn)思路

    這篇文章主要介紹了Springboot敏感字段脫敏的實(shí)現(xiàn)思路,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • Java按行讀取文件文本內(nèi)容的方式匯總

    Java按行讀取文件文本內(nèi)容的方式匯總

    在工作和學(xué)習(xí)中,有時(shí)候會(huì)有一些場景,代碼需要配合讀取文件來執(zhí)行,比如:讀文件數(shù)據(jù),來進(jìn)行計(jì)算、組裝SQL、更新操作,本文給大家介紹在Java中按行讀取文件文件內(nèi)容的方式有哪些,感興趣的朋友一起看看吧
    2023-10-10

最新評(píng)論