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

Spring Cloud Nacos配置管理方案

 更新時(shí)間:2025年01月24日 10:38:26   作者:happycao123  
Nacos是SpringCloud中用于服務(wù)注冊與發(fā)現(xiàn)和配置管理的組件,提供多種健康檢查機(jī)制和歷史版本管理,Nacos支持單機(jī)、集群和多集群模式,通過OpenAPI和多種語言客戶端進(jìn)行接入,感興趣的朋友一起看看吧

Spring Cloud Nacos

Nacos全稱Dynamic Naming and Configuration Service,它可以用于RPC框架中服務(wù)的注冊與發(fā)現(xiàn),也可以作為配置中心管理應(yīng)用的配置.

服務(wù)注冊與發(fā)現(xiàn)

使用過RPC框架同學(xué)對服務(wù)注冊與發(fā)現(xiàn)并不陌生,比如Dubbo默認(rèn)使用Zookeeper作為注冊中心,完成服務(wù)的注冊與發(fā)現(xiàn),而Nacos 同樣可以充當(dāng)注冊中心的角色。

Nacos 提供了多種健康檢查機(jī)制,確保請求總是被健康的服務(wù)器處理。

配置管理

Nacos 還可以作為配置中心,在運(yùn)行時(shí)動態(tài)修改配置,而無需重啟應(yīng)用
對于配置的修改進(jìn)行歷史版本管理,便于回滾和審計(jì)。

同時(shí)Nacos對多環(huán)境支持,即不同的環(huán)境(如開發(fā)、測試、生產(chǎn))有不同的配置

Nacos 優(yōu)勢

Nacos具有數(shù)據(jù)模型簡單,提供了簡單便捷的控制臺界面,支持多種語言 如 Java/Golang/Python等優(yōu)勢,使得在Spring Cloud 微服務(wù)組件中占有重要的一席之地

Nacos 安裝與使用

jdk 安裝 與配置

Nacos 依賴JDK環(huán)境, 建議使用JDK 1.8 ,安裝完成配置好環(huán)境變量。

Nocas 配置中心使用

官網(wǎng)下載2.x版本,本文下載的是nacos-server-2.4.3.tar.gz

Nacos 部署方式

  • 單機(jī)模式
  • 集群模式
  • 多集群模式

解壓后,進(jìn)入nacos/bin 目錄 執(zhí)行 , -m standalone 參數(shù)指定以單機(jī)模式部署。啟動成功后輸入 http://ip:8848/nacos 進(jìn)入控制臺,可以在控制臺進(jìn)行配置的增刪查改

tar -zxvf nacos-server-2.4.3.tar.gz
./startup.sh -m standalone

Nacos 接入

Nacos 支持多種方式對接

  • Open API
  • Java SDK
  • Nacos Spring
  • Nacos Spring Boot
  • Nacos Spring Cloud

Open API 方式

可以通過CURL命令發(fā)送指定請求,實(shí)現(xiàn)配置的增刪查改

獲取配置

請求URL /nacos/v1/cs/configs

請求參數(shù)

名稱類型是否必須描述
tenantstring租戶信息,對應(yīng) Nacos 的命名空間ID字段。
dataIdstring配置 ID。
groupstring配置分組。

通過CURL 查詢配置

curl -X GET 'http://127.0.0.1:8848/nacos/v2/cs/config?dataId=codetonight.ak&group=nacos-demo&namespaceId=public'

返回

{"code":0,"message":"success","data":"akserert123"}

發(fā)布配置

請求 URL /nacos/v1/cs/configs

請求參數(shù)

名稱類型是否必須描述
tenantstring租戶信息,對應(yīng) Nacos 的命名空間ID字段
dataIdstring配置 ID
groupstring配置分組
contentstring配置內(nèi)容
typeString配置類型

通過CURL 發(fā)布配置

curl -d 'dataId=nacos.example' \
  -d 'group=DEFAULT_GROUP' \
  -d 'namespaceId=public' \
  -d 'content=contentTest' \
  -X POST 'http://127.0.0.1:8848/nacos/v2/cs/config'

Java SDK

如果你的項(xiàng)目不是基于Spring Boot ,你也可以使用Nacos-client,
當(dāng)然這種方式使用起來就不那么優(yōu)雅。

如果你愿意,也可以按照Open API格式構(gòu)造Http 請求,與Nacos交互,這也是Nacos 很容易支持其他語言的原因,因?yàn)樗С諳pen API,
其他語言只要構(gòu)造對應(yīng)的Http請求即可。

Nacos-client 需要引入Pom依賴,Java代碼也很簡單,這種使用方式比較少。

        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>${nacos.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.36</version> <!-- 請?zhí)鎿Q為實(shí)際版本號 -->
        </dependency>
  String serverAddr = "http://localhost:8848";
        String dataId = "nacos.example";
        String group = "DEFAULT_GROUP";
        Properties properties = new Properties();
        properties.put("serverAddr", serverAddr);
        ConfigService configService = NacosFactory.createConfigService(properties);
        String content = configService.getConfig(dataId, group, 5000);
        System.out.println(content);
        configService.addListener(dataId, group, new Listener() {
            @Override
            public void receiveConfigInfo(String configInfo) {
                System.out.println("recieve1:" + configInfo);
            }
            @Override
            public Executor getExecutor() {
                return null;
            }
        });
        Thread.sleep(1000*3600);

Nacos Spring Cloud

Nacos Spring,Nacos Spring Boot 使用方式可以自行查看官方文檔,本文重點(diǎn)介紹Nacos Spring Cloud 接入方式,
主要內(nèi)容包含

  • 屬性自動刷新
  • 多環(huán)境支持

首先提個(gè)問題為什么需要配置中心?

傳統(tǒng)的配置放到properties文件或者yaml文件中,隨著代碼一起打包,當(dāng)需要修改配置時(shí),應(yīng)用需要重啟才生效。
此外配置中包含一些敏感信息,如果數(shù)據(jù)庫用戶名和密碼,這些配置放到 properties文件或者yaml文件存在安全隱患。 因此有了配置中心。

配置中心配置優(yōu)先級高于配置文件中配置

DataId

Spring Cloud 中 dataId 格式

${prefix}-${spring.profiles.active}.${file-extension}
  • prefix 如果不配置則值為 spring.application.name
  • spring.profiles.active 即為當(dāng)前環(huán)境對應(yīng)的 profile, 如果spring.profiles.active為空

對應(yīng)dataId 蛻化為

${prefix}.${file-extension}

file-exetension 目前只支持 propertiesyaml 類型 配置示例一

以下是Spring Cloud 一個(gè)簡單配置,我們沒有配置多環(huán)境那么,對應(yīng)的dataId

nacos-demo.properties

# bootstrap.properties
spring.application.name=nacos-demo
spring.cloud.nacos.config.server-addr=http://127.0.0.1:8848
spring.cloud.nacos.config.namespace=public
spring.cloud.nacos.config.group=nacos-demo
spring.cloud.nacos.config.file-extension=properties

多環(huán)境配置

對應(yīng)的dataId nacos-demo-dev.properties

# bootstrap.properties
spring.application.name=nacos-demo
spring.cloud.nacos.config.server-addr=http://127.0.0.1:8848
spring.cloud.nacos.config.namespace=public
spring.cloud.nacos.config.group=nacos-demo
spring.cloud.nacos.config.file-extension=properties
#application.properties
spring.profiles.active=dev
#application-dev.properties
codetonight.user=codetonight

java 代碼使用

@RefreshScope 加在指定類上會自動刷新屬性。

本例中 codetonight.user沒有在配置中心配置,因此取配置文件中值。

codetonight.ak、codetonight.sk屬于敏感信息,我們將其放到配置中心,達(dá)到安全管控目的。

@RestController
@RefreshScope
public class NacosTestController {
    @Value(value = "${codetonight.ak}")
    private String ak;
    @Value(value = "${codetonight.sk}")
    private String token;
    @Value(value = "${codetonight.user}")
    private String user;
    @GetMapping("/getInfo")
    public String getInfo(){
        return ak + "=>" + token + "=>" + user;
    }
}

在Nacos控制臺修改對應(yīng)配置,查詢?nèi)罩?,?yīng)用監(jiān)聽到變更,再次請求配置已經(jīng)生效

總結(jié)

Nacos 作為配置中心,實(shí)現(xiàn)了配置的集中管理,當(dāng)配置更新時(shí),不需要重啟應(yīng)用立即生效,同時(shí)配置的修改具有版本管理功能,便于
審計(jì)和回滾等操作。此外對于一些敏感信息放到配置中心,通過權(quán)限控制增加安全性。

到此這篇關(guān)于Spring Cloud Nacos配置管理的文章就介紹到這了,更多相關(guān)Spring Cloud Nacos配置管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中filter用法完整代碼示例

    Java中filter用法完整代碼示例

    這篇文章主要介紹了Java中filter用法完整代碼示例,分享了瀏覽器不緩存頁面的過濾器,檢測用戶是否登陸的過濾器等相關(guān)實(shí)例,小編覺得還是挺不錯(cuò)的,這里分享給大家,需要的朋友可以參考下
    2018-01-01
  • 詳解Java實(shí)踐之建造者模式

    詳解Java實(shí)踐之建造者模式

    建造者模式是將一個(gè)復(fù)雜的對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。它隱藏了復(fù)雜對象的創(chuàng)建過程,它把復(fù)雜對象的創(chuàng)建過程加以抽象,通過子類繼承或者重載的方式,動態(tài)的創(chuàng)建具有復(fù)合屬性的對象
    2021-06-06
  • spring boot 使用@Async實(shí)現(xiàn)異步調(diào)用方法

    spring boot 使用@Async實(shí)現(xiàn)異步調(diào)用方法

    本篇文章主要介紹了spring boot 使用@Async實(shí)現(xiàn)異步調(diào)用方法,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-04-04
  • Java中private關(guān)鍵字詳細(xì)用法實(shí)例以及解釋

    Java中private關(guān)鍵字詳細(xì)用法實(shí)例以及解釋

    這篇文章主要給大家介紹了關(guān)于Java中private關(guān)鍵字詳細(xì)用法實(shí)例以及解釋的相關(guān)資料,在Java中private是一種訪問修飾符,它可以用來控制類成員的訪問權(quán)限,文中將用法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • String與Blob互轉(zhuǎn)和file文件與Blob互轉(zhuǎn)方式

    String與Blob互轉(zhuǎn)和file文件與Blob互轉(zhuǎn)方式

    這篇文章主要介紹了String與Blob互轉(zhuǎn)和file文件與Blob互轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(2)

    Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(2)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • Spring boot如何基于攔截器實(shí)現(xiàn)訪問權(quán)限限制

    Spring boot如何基于攔截器實(shí)現(xiàn)訪問權(quán)限限制

    這篇文章主要介紹了Spring boot如何基于攔截器實(shí)現(xiàn)訪問權(quán)限限制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Java實(shí)例精煉掌握語法

    Java實(shí)例精煉掌握語法

    本章節(jié)我們將為大家介紹?Java?實(shí)現(xiàn)幾大基礎(chǔ)問題,通過實(shí)例學(xué)習(xí)我們可以更快的掌握?Java?的應(yīng)用,感興趣的朋友來看看吧
    2022-04-04
  • Spring獲取當(dāng)前類在容器中的beanname實(shí)現(xiàn)思路

    Spring獲取當(dāng)前類在容器中的beanname實(shí)現(xiàn)思路

    這篇文章主要介紹了Spring獲取當(dāng)前類在容器中的beanname,實(shí)現(xiàn)思路只需繼承BeanNameAware接口,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • maven下mybatis-plus和pagehelp沖突問題的解決方法

    maven下mybatis-plus和pagehelp沖突問題的解決方法

    這篇文章主要介紹了maven下mybatis-plus和pagehelp沖突的解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評論