亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

Spring Cloud 參考文檔(Spring Cloud Config Client)

DevWiki / 872人閱讀

摘要:應(yīng)用程序可以立即利用或應(yīng)用程序開(kāi)發(fā)人員提供的其他外部屬性源,它還提取了一些與變化事件相關(guān)的額外有用特性。標(biāo)簽也可以以逗號(hào)分隔列表的形式提供,在這種情況下,列表中的項(xiàng)目將逐個(gè)嘗試,直到成功為止,在處理特性分支時(shí),此行為非常有用。

Spring Cloud Config Client

Spring Boot應(yīng)用程序可以立即利用Spring Config Server(或應(yīng)用程序開(kāi)發(fā)人員提供的其他外部屬性源),它還提取了一些與Environment變化事件相關(guān)的額外有用特性。

配置優(yōu)先Bootstrap

在類(lèi)路徑上具有Spring Cloud Config Client的任何應(yīng)用程序的默認(rèn)行為如下:當(dāng)配置客戶端啟動(dòng)時(shí),它會(huì)綁定到Config Server(通過(guò)spring.cloud.config.uri bootstrap配置屬性)并使用遠(yuǎn)程屬性源初始化Spring Environment。

這種行為的最終結(jié)果是,所有想要使用Config Server的客戶端應(yīng)用程序都需要一個(gè)bootstrap.yml(或環(huán)境變量),其服務(wù)器地址在spring.cloud.config.uri中設(shè)置(默認(rèn)為“http://localhost:8888" )。

發(fā)現(xiàn)優(yōu)先Bootstrap

如果你使用DiscoveryClient實(shí)現(xiàn),例如Spring Cloud Netflix和Eureka Service Discovery或Spring Cloud Consul,你可以將Config Server注冊(cè)到Discovery Service,但是,在默認(rèn)的“配置優(yōu)先Bootstrap”模式下,客戶端無(wú)法利用注冊(cè)。

如果你更喜歡使用DiscoveryClient來(lái)定位Config Server,可以通過(guò)設(shè)置spring.cloud.config.discovery.enabled=true(默認(rèn)值為false)來(lái)實(shí)現(xiàn),這樣做的最終結(jié)果是客戶端應(yīng)用程序都需要具有適當(dāng)發(fā)現(xiàn)配置的bootstrap.yml(或環(huán)境變量)。例如,使用Spring Cloud Netflix,你需要定義Eureka服務(wù)器地址(例如,在eureka.client.serviceUrl.defaultZone中),使用此選項(xiàng)的代價(jià)是啟動(dòng)時(shí)額外的網(wǎng)絡(luò)往返,以查找服務(wù)注冊(cè),好處是,只要Discovery Service是固定點(diǎn),Config Server就可以更改其坐標(biāo)。默認(rèn)服務(wù)ID是configserver,但你可以通過(guò)設(shè)置spring.cloud.config.discovery.serviceId在客戶端上更改它(在服務(wù)器上,以通常的方式提供服務(wù),例如通過(guò)設(shè)置spring.application.name) 。

發(fā)現(xiàn)客戶端實(shí)現(xiàn)都支持某種元數(shù)據(jù)映射(例如,我們?yōu)镋ureka提供了eureka.instance.metadataMap),可能需要在其服務(wù)注冊(cè)元數(shù)據(jù)中配置Config Server的一些額外屬性,以便客戶端可以正確連接。如果使用HTTP Basic保護(hù)Config Server,則可以將憑據(jù)配置為userpassword,此外,如果Config Server具有上下文路徑,則可以設(shè)置configPath,例如,以下YAML文件用于作為Eureka客戶端的Config Server:

bootstrap.yml

eureka:
  instance:
    ...
    metadataMap:
      user: osufhalskjrtl
      password: lviuhlszvaorhvlo5847
      configPath: /config
Config Client快速失敗

在某些情況下,如果服務(wù)無(wú)法連接到Config Server,你可能希望服務(wù)啟動(dòng)失敗,如果這是所需的行為,請(qǐng)將bootstrap配置屬性spring.cloud.config.fail-fast=true設(shè)置為使客戶端停止并顯示異常。

Config Client重試

如果你預(yù)期配置服務(wù)器在應(yīng)用程序啟動(dòng)時(shí)偶爾可能不可用,你可以在失敗后繼續(xù)嘗試。首先,你需要設(shè)置spring.cloud.config.fail-fast=true,然后,你需要在類(lèi)路徑中添加spring-retryspring-boot-starter-aop,默認(rèn)行為是重試六次,初始回退間隔為1000毫秒,后續(xù)回退的指數(shù)乘數(shù)為1.1,你可以通過(guò)設(shè)置spring.cloud.config.retry.*配置屬性來(lái)配置這些屬性(和其他屬性)。

要完全控制重試行為,請(qǐng)?zhí)砑右粋€(gè)類(lèi)型為RetryOperationsInterceptor@Bean,其ID為configServerRetryInterceptor,Spring Retry有一個(gè)RetryInterceptorBuilder支持創(chuàng)建它。
查找遠(yuǎn)程配置資源

Config Service從/{name}/{profile}/{label}提供屬性源,其中客戶端應(yīng)用程序中的默認(rèn)綁定如下:

“name” = ${spring.application.name}

“profile” = ${spring.profiles.active}(實(shí)際上是Environment.getActiveProfiles()

“l(fā)abel” = “master”

設(shè)置屬性${spring.application.name}時(shí),不要在應(yīng)用程序名稱(chēng)前加上保留字application-,以防止解析正確的屬性源問(wèn)題。

你可以通過(guò)設(shè)置spring.cloud.config.*來(lái)覆蓋所有這些(其中*name、profilelabel),該label可用于回滾到以前版本的配置,使用默認(rèn)的Config Server實(shí)現(xiàn),它可以是git標(biāo)簽,分支名稱(chēng)或提交ID。標(biāo)簽也可以以逗號(hào)分隔列表的形式提供,在這種情況下,列表中的項(xiàng)目將逐個(gè)嘗試,直到成功為止,在處理特性分支時(shí),此行為非常有用。例如,你可能希望將配置標(biāo)簽與你的分支對(duì)齊,但使其成為可選(在這種情況下,請(qǐng)使用spring.cloud.config.label=myfeature,develop)。

為Config Server指定多個(gè)URL

當(dāng)你部署了多個(gè)Config Server實(shí)例并預(yù)期一個(gè)或多個(gè)實(shí)例不時(shí)不可用時(shí),為確保高可用性,你可以指定多個(gè)URL(作為spring.cloud.config.uri屬性下的逗號(hào)分隔列表),也可以讓所有實(shí)例在Eureka等Service Registry中注冊(cè)(如果使用發(fā)現(xiàn)優(yōu)先Bootstrap模式)。請(qǐng)注意,只有在Config Server未運(yùn)行時(shí)(即應(yīng)用程序已退出時(shí))或發(fā)生連接超時(shí)時(shí),才能確保高可用性,例如,如果Config Server返回500(內(nèi)部服務(wù)器錯(cuò)誤)響應(yīng)或Config Client從Config Server收到401(由于憑據(jù)錯(cuò)誤或其他原因),則Config Client不會(huì)嘗試從其他URL獲取屬性,這種錯(cuò)誤表示用戶問(wèn)題而不是可用性問(wèn)題。

如果在Config Server上使用HTTP基本安全性,則僅當(dāng)你在spring.cloud.config.uri屬性下指定的每個(gè)URL中嵌入憑據(jù)時(shí),才能支持每個(gè)Config Server身份驗(yàn)證憑據(jù),如果使用任何其他類(lèi)型的安全機(jī)制,則無(wú)法(目前)支持每個(gè)Config Server身份驗(yàn)證和授權(quán)。

配置讀取超時(shí)

如果要配置讀取超時(shí),可以使用屬性spring.cloud.config.request-read-timeout來(lái)完成此操作。

安全性

如果你在服務(wù)器上使用HTTP Basic安全性,客戶端需要知道密碼(如果不是默認(rèn)值,則需要用戶名),你可以通過(guò)配置服務(wù)器URI或多帶帶的用戶名和密碼屬性指定用戶名和密碼,如以下示例所示:

bootstrap.yml

spring:
  cloud:
    config:
     uri: https://user:secret@myconfig.mycompany.com

以下示例顯示了傳遞相同信息的另一種方法:

bootstrap.yml

spring:
  cloud:
    config:
     uri: https://myconfig.mycompany.com
     username: user
     password: secret

spring.cloud.config.passwordspring.cloud.config.username值覆蓋URI中提供的任何內(nèi)容。

如果你在Cloud Foundry上部署應(yīng)用程序,提供密碼的最佳方式是通過(guò)服務(wù)憑據(jù)(例如在URI中,因?yàn)樗恍枰谂渲梦募校韵率纠诒镜剡\(yùn)行,并在名為configserver的Cloud Foundry上為用戶提供服務(wù):

bootstrap.yml

spring:
  cloud:
    config:
     uri: ${vcap.services.configserver.credentials.uri:http://user:password@localhost:8888}

如果你使用其他形式的安全性,則可能需要向ConfigServicePropertySourceLocator提供一個(gè)RestTemplate(例如,通過(guò)在引導(dǎo)程序上下文中獲取它并注入它)。

健康指示器

Config Client提供嘗試從Config Server加載配置的Spring Boot Health Indicator,可以通過(guò)設(shè)置health.config.enabled=false來(lái)禁用健康指示器,出于性能原因,還會(huì)緩存響應(yīng),生存的默認(rèn)緩存時(shí)間為5分鐘,要更改該值,請(qǐng)?jiān)O(shè)置health.config.time-to-live屬性(以毫秒為單位)。

提供自定義RestTemplate

在某些情況下,你可能需要自定義從客戶端向配置服務(wù)器發(fā)出的請(qǐng)求,通常,這樣做涉及傳遞特殊的Authorization headers來(lái)驗(yàn)證對(duì)服務(wù)器的請(qǐng)求,要提供自定義RestTemplate

使用PropertySourceLocator的實(shí)現(xiàn)創(chuàng)建一個(gè)新的配置bean,如以下示例所示:

CustomConfigServiceBootstrapConfiguration.java

@Configuration
public class CustomConfigServiceBootstrapConfiguration {
    @Bean
    public ConfigServicePropertySourceLocator configServicePropertySourceLocator() {
        ConfigClientProperties clientProperties = configClientProperties();
       ConfigServicePropertySourceLocator configServicePropertySourceLocator =  new ConfigServicePropertySourceLocator(clientProperties);
        configServicePropertySourceLocator.setRestTemplate(customRestTemplate(clientProperties));
        return configServicePropertySourceLocator;
    }
}

resources/META-INF中,創(chuàng)建一個(gè)名為spring.factories的文件并指定自定義配置,如以下示例所示:

spring.factories

org.springframework.cloud.bootstrap.BootstrapConfiguration = com.my.config.client.CustomConfigServiceBootstrapConfiguration
Vault

使用Vault作為配置服務(wù)器的后端時(shí),客戶端需要為服務(wù)器提供令牌以從Vault檢索值,可以通過(guò)在bootstrap.yml中設(shè)置spring.cloud.config.token在客戶端內(nèi)提供此令牌,如以下示例所示:

bootstrap.yml

spring:
  cloud:
    config:
      token: YourVaultToken
Vault中的嵌套密鑰

Vault支持將密鑰嵌套在Vault中存儲(chǔ)的值中,如以下示例所示:

echo -n "{"appA": {"secret": "appAsecret"}, "bar": "baz"}" | vault write secret/myapp -

此命令將JSON對(duì)象寫(xiě)入Vault,要在Spring中訪問(wèn)這些值,可以使用傳統(tǒng)的點(diǎn)(.)注解,如以下示例所示:

@Value("${appA.secret}")
String name = "World";

上面的代碼會(huì)將name變量的值設(shè)置為appAsecret。

上一篇:推送通知和Spring Cloud Bus 下一篇:服務(wù)發(fā)現(xiàn):Eureka客戶端

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/74107.html

相關(guān)文章

  • Spring Cloud 參考文檔Spring Cloud Config快速入門(mén))

    摘要:快速入門(mén)這個(gè)快速入門(mén)使用的服務(wù)器和客戶端。屬性在端點(diǎn)中顯示為高優(yōu)先級(jí)屬性源,如以下示例所示。名為的屬性源包含值為且具有最高優(yōu)先級(jí)的屬性。屬性源名稱(chēng)中的是存儲(chǔ)庫(kù),而不是配置服務(wù)器。 Spring Cloud Config快速入門(mén) 這個(gè)快速入門(mén)使用Spring Cloud Config Server的服務(wù)器和客戶端。 首先,啟動(dòng)服務(wù)器,如下所示: $ cd spring-cloud-con...

    gekylin 評(píng)論0 收藏0
  • Spring Cloud實(shí)戰(zhàn)(一)-Spring Cloud Config Server

    摘要:概要什么是創(chuàng)建并運(yùn)行一個(gè)建立一個(gè)創(chuàng)建并運(yùn)行一個(gè)是什么什么是配置信息一個(gè)中不只是代碼還需要連接資源和其它應(yīng)用經(jīng)常有很多需要外部設(shè)置的項(xiàng)去調(diào)整行為如切換不同的數(shù)據(jù)庫(kù)國(guó)際化等應(yīng)用中的會(huì)經(jīng)常見(jiàn)到的等就是配置信息常見(jiàn)的實(shí)現(xiàn)信息配置的方法硬編碼缺點(diǎn)需要 概要 什么是Spring Cloud Config? 創(chuàng)建并運(yùn)行一個(gè)Spring Cloud Config Server 建立一個(gè)Reposit...

    Dionysus_go 評(píng)論0 收藏0
  • Spring Cloud 參考文檔(推送通知和Spring Cloud Bus)

    摘要:推送通知和許多源代碼存儲(chǔ)庫(kù)提供程序例如或通過(guò)通知你存儲(chǔ)庫(kù)中的更改,你可以通過(guò)提供程序的用戶界面將配置為以及你感興趣的一組事件。要覆蓋該行為時(shí)使用的策略是,它接受請(qǐng)求和作為參數(shù),并返回已更改的文件路徑列表。 推送通知和Spring Cloud Bus 許多源代碼存儲(chǔ)庫(kù)提供程序(例如Github、Gitlab、Gitea、Gitee、Gogs或Bitbucket)通過(guò)webhook通知你存...

    Mr_houzi 評(píng)論0 收藏0
  • Spring Cloud Alibaba基礎(chǔ)教程:Nacos配置的多環(huán)境管理

    摘要:第二步在應(yīng)用的配置文件中,增加環(huán)境配置第三步啟動(dòng)應(yīng)用,我們可以看到日志中打印了,加載的配置文件使用實(shí)現(xiàn)在中是用來(lái)對(duì)做集合管理的重要概念。深入思考上面我們分別利用配置管理功能中的幾個(gè)不同緯度來(lái)實(shí)現(xiàn)多環(huán)境的配置管理。 前情回顧: 《Spring Cloud Alibaba基礎(chǔ)教程:使用Nacos實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)》 《Spring Cloud Alibaba基礎(chǔ)教程:支持的幾種服務(wù)消費(fèi)方...

    CNZPH 評(píng)論0 收藏0
  • SpringCloud核心教程 | 第三篇:服務(wù)注冊(cè)與發(fā)現(xiàn) Eureka篇

    摘要:下一篇介紹基于的服務(wù)注冊(cè)與調(diào)用。服務(wù)提供者工程配置這里服務(wù)提供者是使用之前進(jìn)階教程第三篇整合連接池以及監(jiān)控改造而來(lái),這里一樣的部分就不再重復(fù)說(shuō)明,下面將說(shuō)明新增的部分。 Spring Cloud簡(jiǎn)介 Spring Cloud是一個(gè)基于Spring Boot實(shí)現(xiàn)的云應(yīng)用開(kāi)發(fā)工具,它為基于JVM的云應(yīng)用開(kāi)發(fā)中涉及的配置管理、服務(wù)發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線、全局鎖、決策競(jìng)選、分...

    scq000 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<