国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【微服務(wù)】Nacos注冊中心(3):配置管理

這篇具有很好參考價值的文章主要介紹了【微服務(wù)】Nacos注冊中心(3):配置管理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Nacos注冊中心

環(huán)境隔離

給微服務(wù)配置namespace

給微服務(wù)配置namespace只能通過修改配置來實現(xiàn)。

spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: HZ
        namespace: 492a7d5d-237b-46a1-a99a-fa8e98e4b0f9 # 命名空間,填I(lǐng)D

重啟order-service后,訪問控制臺,可以看到下面的結(jié)果

此時訪問order-service,因為namespace不同,會導(dǎo)致找不到userservice,控制臺會報錯

Nacos與Eureka的區(qū)別

Nacos的服務(wù)實例分為兩種l類型:

  • 臨時實例:如果實例宕機(jī)超過一定時間,會從服務(wù)列表剔除,默認(rèn)的類型。
  • 非臨時實例:如果實例宕機(jī),不會從服務(wù)列表剔除,也可以叫永久實例。

配置一個服務(wù)實例為永久實例:

spring:
  cloud:
    nacos:
      discovery:
        ephemeral: false # 設(shè)置為非臨時實例

Nacos和Eureka整體結(jié)構(gòu)類似,服務(wù)注冊、服務(wù)拉取、心跳等待,但是也存在一些差異

  • Nacos與eureka的共同點
    • 都支持服務(wù)注冊和服務(wù)拉取
    • 都支持服務(wù)提供者心跳方式做健康檢測
  • Nacos與Eureka的區(qū)別
    • Nacos支持服務(wù)端主動檢測提供者狀態(tài):臨時實例采用心跳模式,非臨時實例采用主動檢測模式
    • 臨時實例心跳不正常會被剔除,非臨時實例則不會被剔除
    • Nacos支持服務(wù)列表變更的消息推送模式,服務(wù)列表更新更及時
    • Nacos集群默認(rèn)采用AP方式,當(dāng)集群中存在非臨時實例時,采用CP模式;Eureka采用AP方式

Nacos配置管理

Nacos除了可以做注冊中心,同樣可以做配置管理來使用。

統(tǒng)一配置管理

當(dāng)微服務(wù)部署的實例越來越多,達(dá)到數(shù)十、數(shù)百時,逐個修改微服務(wù)配置就會讓人抓狂,而且很容易出錯。我們需要一種統(tǒng)一配置管理方案,可以集中管理所有實例的配置。

Nacos一方面可以將配置集中管理,另一方可以在配置變更時,及時通知微服務(wù),實現(xiàn)配置的熱更新。

在nacos中添加配置文件

如何在nacos中管理配置呢?

然后在彈出的表單中,填寫配置信息

注意:項目的核心配置,需要熱更新的配置才有放到nacos管理的必要。基本不會變更的一些配置還是保存在微服務(wù)本地比較好. 也就是說只有開關(guān)類的配置才需要配置到nacos

從微服務(wù)拉取配置

微服務(wù)要拉取nacos中管理的配置,并且與本地的application.yml配置合并,才能完成項目啟動。

但如果尚未讀取application.yml,又如何得知nacos地址呢?

因此spring引入了一種新的配置文件:bootstrap.yaml文件,會在application.yml之前被讀取

1)引入nacos-config依賴

首先,在user-service服務(wù)中,引入nacos-config的客戶端依賴:

<!--nacos配置管理依賴-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2)添加bootstrap.yaml

然后,在user-service中添加一個bootstrap.yaml文件,內(nèi)容如下:

spring:
  application:
    name: userservice # 服務(wù)名稱
  profiles:
    active: dev #開發(fā)環(huán)境,這里是dev 
  cloud:
    nacos:
      server-addr: localhost:8848 # Nacos地址
      config:
        file-extension: yaml # 文件后綴名

這里會根據(jù)spring.cloud.nacos.server-addr獲取nacos地址,再根據(jù)

${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}作為文件id,來讀取配置。

3)讀取nacos配置

在user-service中的UserController中添加業(yè)務(wù)邏輯,讀取pattern.dateformat配置

@Value("${pattern.dateformat}")
    private String dateformat;

@GetMapping("now")
    public String now(){
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
    }

此時在頁面訪問,就可以看到效果。

配置熱更新

我們最終的目的,是修改nacos中的配置后,微服務(wù)中無需重啟即可讓配置生效,也就是配置熱更新。

要實現(xiàn)配置熱更新,可以使用兩種方式:

方式一

在@Value注入的變量所在類上添加注解@RefreshScope

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-sDIML517-1659538060339)(file:///Users/apple/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/Users/316595344/QQ/Temp.db/7D0D518D-83D6-4B02-877E-0AAA4CB821FC.png?msec=1659537757672)]

方式二

使用@ConfigurationProperties注解代替@Value注解。

在user-service服務(wù)中,添加一個類,讀取patterrn.dateformat屬性:

package cn.itcast.user.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@Data
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
    private String dateformat;
}

配置共享

其實微服務(wù)啟動時,會去nacos讀取多個配置文件,例如:

  • [spring.application.name]-[spring.profiles.active].yaml,例如:userservice-dev.yaml
  • [spring.application.name].yaml,例如:userservice.yaml

[spring.application.name].yaml不包含環(huán)境,因此可以被多個環(huán)境共享。

下面我們通過案例來測試配置共享

1)添加一個環(huán)境共享配置

我們在nacos中添加一個userservice.yaml文件

2)在user-service中讀取共享配置

在user-service服務(wù)中,修改PatternProperties類,讀取新添加的屬性:

@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
    private String dateformat;
    private String envSharedValue;
}

在user-service服務(wù)中,修改UserController,添加一個方法:

@Slf4j
@RestController
@RequestMapping("/user")
//@RefreshScope // 熱更新 -->  配置讀取遠(yuǎn)程yaml
public class UserController {

  @Autowired
  private PatternProperties properties;

  @GetMapping("prop")
  public PatternProperties prop(){
      return properties;
  }
}
3)運行兩個UserApplication,使用不同的profile

修改UserApplication2這個啟動項,改變其profile值

UserApplication2的Active profiles -> test

這樣,UserApplication(8081)使用的profile是dev,UserApplication2(8082)使用的profile是test。

啟動UserApplication和UserApplication2

訪問http://localhost:8081/user/prop,結(jié)果

{"dateformat":"yyyy/MM/dd HH:mm:ss","envSharedValue":"多環(huán)境共享屬性值"}

訪問http://127.0.0.1:8082/user/prop,結(jié)果

{"dateformat":null,"envSharedValue":"多環(huán)境共享屬性值"}

可以看出來,不管是dev,還是test環(huán)境,都讀取到了envSharedValue這個屬性的值。實現(xiàn)配置共享。

4)配置共享的優(yōu)先級

當(dāng)nacos、服務(wù)本地同時出現(xiàn)相同屬性時,優(yōu)先級有高低之分:文章來源地址http://www.zghlxwxcb.cn/news/detail-448854.html

到了這里,關(guān)于【微服務(wù)】Nacos注冊中心(3):配置管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Java】微服務(wù)——Nacos配置管理(統(tǒng)一配置管理&熱更新&配置共享&Nacos集群搭建)

    【Java】微服務(wù)——Nacos配置管理(統(tǒng)一配置管理&熱更新&配置共享&Nacos集群搭建)

    Nacos除了可以做注冊中心,同樣可以做配置管理來使用。 當(dāng)微服務(wù)部署的實例越來越多,達(dá)到數(shù)十、數(shù)百時,逐個修改微服務(wù)配置就會讓人抓狂,而且很容易出錯。我們需要一種統(tǒng)一配置管理方案,可以集中管理所有實例的配置。 Nacos一方面可以將配置集中管理,另一方可以

    2024年02月03日
    瀏覽(30)
  • 注冊中心/配置管理 —— SpringCloud Alibaba Nacos

    注冊中心/配置管理 —— SpringCloud Alibaba Nacos

    Nacos 是一個易于使用的動態(tài)服務(wù)發(fā)現(xiàn)、配置和服務(wù)管理平臺,用于構(gòu)建云原生的應(yīng)用程序 Nacos 的關(guān)鍵特性包括以下幾項: 服務(wù)發(fā)現(xiàn)和服務(wù)健康監(jiān)測:服務(wù)提供者使用原生 SDK、OpenAPI 等注冊服務(wù)后,服務(wù)消費者可以使用 HTTPAPI 查找和發(fā)現(xiàn)服務(wù)。Nacos 提供對服務(wù)的實時健康檢查

    2024年02月14日
    瀏覽(113)
  • 微服務(wù)——Nacos配置管理

    微服務(wù)——Nacos配置管理

    目錄 Nacos配置管理——實現(xiàn)配置管理 配置管理實踐 ?Nacos配置管理——微服務(wù)配置拉取 ?Nacos配置管理——配置熱更新 方式一: ?編輯?方式二(推薦方式): ?Nacos配置管理——多環(huán)境配置共享 ?優(yōu)先級問題 ??Nacos配置管理——nacos集群搭建 ?總結(jié)?編輯 在一個微服務(wù)架構(gòu)的系統(tǒng)

    2024年02月15日
    瀏覽(18)
  • 微服務(wù)-Nacos(配置管理)

    微服務(wù)-Nacos(配置管理)

    在Nacos中添加配置信息: 在彈出表單中填寫配置信息: ?配置獲取的步驟如下: ?1.引入Nacos的配置管理客戶端依賴(A、B服務(wù)): ?2.在B服務(wù)中的resource目錄添加一個bootstrap.yml文件,這個文件是引導(dǎo)文件,優(yōu)先級高于application.yml ?將配置交給Nacos管理的步驟 : 在Nacos中添加配

    2024年02月12日
    瀏覽(19)
  • 微服務(wù)-nacos配置管理

    統(tǒng)一配置管理 :一次配置更改并支持熱更新。將核心配置存儲到配置管理服務(wù),當(dāng)微服務(wù)啟動時會自動讀取配置管理服務(wù)中的配置信息并結(jié)合本地配置啟動。當(dāng)配置改動時,配置管理服務(wù)會自動通知微服務(wù),微服務(wù)讀取新配置并自動熱更新,無需重新啟動。 配置中心的思路

    2024年02月14日
    瀏覽(23)
  • 【微服務(wù)】Nacos:發(fā)現(xiàn)、配置和管理微服務(wù)

    【微服務(wù)】Nacos:發(fā)現(xiàn)、配置和管理微服務(wù)

    Nacos 在阿里巴巴起源于 2008 2008 2008 年五彩石項目(完成微服務(wù)拆分和業(yè)務(wù)中臺建設(shè)),成長于十年雙十一的洪峰考驗,沉淀了簡單易用、穩(wěn)定可靠、性能卓越的核心競爭力。 隨著云計算興起, 2018 2018 2018 年 Nacos(阿里內(nèi)部 Configserver/Diamond/ Vipserver 內(nèi)核)開源,作為阿里十年

    2024年02月07日
    瀏覽(18)
  • nacos 注冊中心服務(wù)端配置詳解

    Nacos是一個開源的動態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺。在使用Nacos作為注冊中心時,需要配置Nacos Server的相關(guān)參數(shù)。 下面是Nacos Server的配置參數(shù)詳解: nacos.core.default.namespace: Nacos默認(rèn)的命名空間,用于隔離不同的環(huán)境或不同的應(yīng)用。默認(rèn)值為public。 nacos.naming.data.warmup

    2024年02月13日
    瀏覽(23)
  • Nacos:服務(wù)的注冊、發(fā)現(xiàn)和配置中心(注冊篇)

    Nacos:服務(wù)的注冊、發(fā)現(xiàn)和配置中心(注冊篇)

    Nacos 是阿里巴巴推出來的一個新開源項目,這是一個更易于構(gòu)建云原生應(yīng)用的動態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺。 Nacos 致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù)。Nacos 提供了一組簡單易用的特性集,幫助您快速實現(xiàn)動態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理。 N

    2024年02月15日
    瀏覽(25)
  • 【微服務(wù)】4、NACOS 配置管理

    【微服務(wù)】4、NACOS 配置管理

    ?? 服務(wù)注冊到 Nacos 時,可以選擇注冊為臨時實例或非臨時實例 ?? 臨時實例宕機(jī)時,會從 Nacos 的服務(wù)列表中剔除;非臨時實例宕機(jī)不會從服務(wù)列表中剔除 ?? 注冊到 Nacos 中的服務(wù)默認(rèn)是非臨時實例(除非設(shè)置 ephemeral 屬性為 false) 同: ?? 都支持服務(wù)注冊和服務(wù)拉取 ?? 都

    2024年02月14日
    瀏覽(18)
  • Spring Cloud Alibaba 微服務(wù)2,注冊中心演變 + Nacos注冊中心與配置中心

    Spring Cloud Alibaba 微服務(wù)2,注冊中心演變 + Nacos注冊中心與配置中心

    ??作者簡介: 哪吒 ,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多屆新星計劃導(dǎo)師?、博客專家?? , 專注Java硬核干貨分享,立志做到Java賽道全網(wǎng)Top N。 ??本文收錄于 Java基礎(chǔ)教程系列(進(jìn)階篇) ,本專欄是針對大學(xué)生、初級Java工程師精心打造, 針對Java生態(tài),逐個擊破,

    2024年02月02日
    瀏覽(1681)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包