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

如何解決無法獲取到Nacos配置中心的配置問題

 更新時間:2025年06月07日 08:43:46   作者:lukamao  
這篇文章主要介紹了如何解決無法獲取到Nacos配置中心的配置問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

引言

最近在學習 Spring Cloud Alibaba,用到了 Nacos 配置中心。

Nacos 是 Spring Cloud Alibaba 中的一個組件,通常用作服務注冊中心以及配置中心。

問題復現(xiàn)

項目中有一個如圖所示的消息模塊:

在 application.yml 中做了如下配置:

spring:
  application:
    name: message
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        file-extension: yaml
        group: DEFAULT_GROUP

主要配置了服務的名稱、Nacos 注冊中心的地址、配置文件的后綴名以及組的名稱,我在 Nacos 注冊中心上做了如下配置:

Nacos 默認會在啟動的時候去配置中心上讀取名為

${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension} 

的配置文件,但是在啟動的時候報了如下的錯誤:

意思是 Spring Boot 項目啟動失敗,url 屬性未指定,DataSource 創(chuàng)建失敗。

這里有一個小插曲:在高版本的 Spring Boot 中,默認是要創(chuàng)建 DataSource 的,否則無法啟動,我們可以在 Spring Boot 的主啟動類的 @SpringBootApplication 上加一個參數(shù),排除掉 DataSourceAutoConfiguration,如下所示:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

}

但是,在這個服務中,我們是需要配置數(shù)據(jù)源,并且已經(jīng)配置了數(shù)據(jù)源的,為什么會啟動失敗呢?

問題排查

關于排查問題,我們首先要做的就是看日志,先看控制臺輸出:

我們發(fā)現(xiàn)程序首先會去配置中心上加載名為 message 和 message.properties 的配置文件,讀到這里大家會不會有點奇怪,我們配置的后綴名明明是 yaml,為什么會去讀 message.properties 呢?帶著這個疑問,請繼續(xù)往下讀。

如果讓我去設計一個注冊中心的話,在程序啟動的時候,我會首先解析出配置文件,找到注冊中心的地址,恰恰 Nacos 也是這樣做的。如果你有一定的源碼閱讀功底的話,你應該會很快的找到 Nacos 里面的 NacosPropertySourceBuilder 類,里面有個 build 方法。沒錯,這個類就是用來解析配置文件,構造 NacosPropertySource 對象的,我們在這個方法的第一行上打上斷點,以 Debug 模式運行,發(fā)現(xiàn)這個斷點一共運行了兩次,兩次的對象的值如下:

我們發(fā)現(xiàn),這與日志里的值一樣,并且并沒有解析我們的配置文件,采用的是默認的配置,為什么會這樣呢?

問題解決

我們把配置文件名改為 bootstrap.yml,再次運行。

我們可以看到項目正常啟動了!

總結

這是一個非常細節(jié)的問題,我原先以為我們把 Nacos 的配置信息寫在默認的 application.yml 文件中就可以加載,但是事實并非如此,Nacos 的配置信息必須寫在 bootstrap.properties 或者 bootstrap.yml 文件中,以后要多加注意!

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

相關文章

  • SharedWorkerGlobalScope屬性數(shù)據(jù)共享示例解析

    SharedWorkerGlobalScope屬性數(shù)據(jù)共享示例解析

    這篇文章主要為大家介紹了SharedWorkerGlobalScope屬性數(shù)據(jù)共享示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Java雙向鏈表的操作

    Java雙向鏈表的操作

    這篇文章主要介紹了Java雙向鏈表的操作,雙向鏈表,對于該鏈表中的任意節(jié)點,既可以通過該節(jié)點向前遍歷,也可以通過該節(jié)點向后遍歷,雙向鏈表在實際工程中應用非常廣泛,是使用鏈表這個結構的首選
    2022-06-06
  • 詳解一個簡單的Servlet容器的設計與實現(xiàn)

    詳解一個簡單的Servlet容器的設計與實現(xiàn)

    Servlet算是Java Web開發(fā)請求鏈路調用棧中底層的一個技術,而了解一個Servlet容器的實現(xiàn)有助于更好的理解JavaWeb開發(fā),所以下面就來看看如何設計與實現(xiàn)一個簡單的Servlet容器吧
    2023-07-07
  • Spring中的循環(huán)依賴詳解

    Spring中的循環(huán)依賴詳解

    這篇文章主要介紹了Spring中的循環(huán)依賴詳解,  Spring 框架是一個流行的Java應用程序框架,它提供了許多強大的功能,如依賴注入和面向切面編程,然而在使用 Spring 框架時,我們可能會遇到循環(huán)依賴的問題,需要的朋友可以參考下
    2023-09-09
  • 解決idea web 配置相對路徑問題

    解決idea web 配置相對路徑問題

    這篇文章主要介紹了idea web 配置相對路徑問題的解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • 淺談靜態(tài)變量、成員變量、局部變量三者的區(qū)別

    淺談靜態(tài)變量、成員變量、局部變量三者的區(qū)別

    下面小編就為大家?guī)硪黄獪\談靜態(tài)變量、成員變量、局部變量三者的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • JAVA中 Spring定時器的兩種實現(xiàn)方式

    JAVA中 Spring定時器的兩種實現(xiàn)方式

    本文向您介紹Spring定時器的兩種實現(xiàn)方式,包括Java Timer定時和Quartz定時器,兩種Spring定時器的實現(xiàn)方式各有優(yōu)點,可結合具體項目考慮是否采用。
    2015-09-09
  • lombok中@Data使用常見的小坑及解決

    lombok中@Data使用常見的小坑及解決

    在Java中使用Lombok庫的@Data注解時,布爾類型屬性可能導致生成的get方法不符合預期,對于非is開頭的布爾屬性,Lombok生成的方法會添加is前綴,導致原本期待的get方法不存在,例如,對于屬性private boolean active,Lombok會生成方法名為isActive而不是getActive
    2024-10-10
  • java開發(fā)ShardingSphere的路由引擎類型示例詳解

    java開發(fā)ShardingSphere的路由引擎類型示例詳解

    這篇文章主要為大家介紹了java開發(fā)ShardingSphere的路由引擎類型示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Maven編譯錯誤:程序包com.sun.*包不存在的三種解決方案

    Maven編譯錯誤:程序包com.sun.*包不存在的三種解決方案

    J2SE中的類大致可以劃分為以下的各個包:java.*,javax.*,org.*,sun.*,本文文章主要介紹了maven編譯錯誤:程序包com.sun.xml.internal.ws.spi不存在的解決方案,感興趣的可以了解一下
    2024-02-02

最新評論