spring cloud 使用nacos 作為配置中心


概要

nacos 可以作為服務注冊發現中心,也可以作為配置中心,作為配置中心的時候,系統的配置可以做到自動刷新,即當配置服務器的數據發生更改時,客戶端的配置會進行自動的更新。

實現步驟

1.修改maven 配置

 <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

2.增加bootstrap.properties

這個是文件是啟用nacos作為配置中心的文件。

 

圖標有朵雲,表示啟用nacos 作為配置中心。

//配置nacos作為配置服務器
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
//配置模式為開發模式
spring.profiles.active=dev
//nacos配資使用yml 作為擴展名
spring.cloud.nacos.config.file-extension=yml
//下面的配置時公共配置,即可以在不同應用之間進行共享。
spring.cloud.nacos.config.shared-dataids=common.yml
spring.cloud.nacos.config.refreshable-dataids=common.yml

 springcloud 是使用配置優先的。

比如我現在有一個應用為:

jpaas-form

系統會按照如下的配置進行查找

1.先找 jpaas-form-dev.yml,如果找到了則返回,如果找不到則進行下一步。

2.查找 jpaas-form.yml 如果找不到,則查找共享的配置,根據上面的配置他會查找common.yml

 

 

 這里配置格式,可以是 yaml 或者 properties

 

3.在程序中使用

@RefreshScope
public class SysSeqIdController extends BaseController<SysSeqId> {

    
    @Value( value = "${user.name}")
    private String username="";

    @Value( value = "${sys.name}" )
    private String uploaddir="";

    @Autowired
    private User user;

@RefreshScope 是實現自動刷新配置。

user.name,sys.name 是配置的參數

可以使用 yml 的格式進行配置。

 

 我們還可以配置對象的方式進行參數進行注入,使用相當方便。

比如:

user:
    name: ray
    address: guangzhou

編寫用戶代碼如下:

@Data
@Component
@ConfigurationProperties(prefix = "user")
public class User {
    private String name="";
    private String address="";
}

這樣 數據就會自動配置好用戶對象,使用下面的代碼進行注入。

@Autowired
private User user;

 同樣,這個對象在配置中心修改后也能進行自動刷新。

 

4.將數據庫配置放到nacos 配置中心。

我們一般將數據庫配置,配置到 application.properties 文件中,這有個壞處,當我需要打包時,需要在啟動時,指定這些配置,配置會太多。

因此,我們需要將這些配置放置到 nacos ,在啟動應用的時候,我們只需要指定 nacos 的地址,這樣我們 就可以啟動微服務應用。

當數據庫配置等需要修改時,我們只需修改naocs的配置即可,不需要修改程序包。

 

nacos配置如下:

 

程序配置中心配置如下:

 

 

 在bootstrap-dev.properties 指定 nacos的配置 nacos-config-dev.properties

 

 在 IDEA 中指定 配置 nacos.address 

 

使用命令行啟動微服務

java -jar jpaas-user.jar --nacos.address=192.168.1.10:8848 指定配置中心地址。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM