最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微服務(wù)SpringConfig配置中心詳解

 更新時(shí)間:2025年04月19日 10:12:35   作者:早睡早起愛學(xué)習(xí)i  
這篇文章主要介紹了微服務(wù)SpringConfig配置中心,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

前言

提示:這里可以添加本文要記錄的大概內(nèi)容:

例如:隨著人工智能的不斷發(fā)展,機(jī)器學(xué)習(xí)這門技術(shù)也越來越重要,很多人都開啟了學(xué)習(xí)機(jī)器學(xué)習(xí),本文就介紹了機(jī)器學(xué)習(xí)的基礎(chǔ)內(nèi)容。

一、SpringConfig概念介紹

在實(shí)際操作中會(huì)出現(xiàn)多個(gè)微服務(wù)操作同一個(gè)數(shù)據(jù)庫的情況,那么對(duì)于每個(gè)微服務(wù)都需要重復(fù)配置數(shù)據(jù)庫信息,而且當(dāng)數(shù)據(jù)庫信息改動(dòng)時(shí)也難以維護(hù)。因此一套集中的、動(dòng)態(tài)的配置管理設(shè)施是必不可少的。

SpringCloud Config為微服務(wù)架構(gòu)中的微服務(wù)提供集中化的外部配置支持,配置服務(wù)器為各個(gè)不同微服務(wù)應(yīng)用的所有環(huán)境提供了一個(gè)中心化的外部配置。SpringCloud Config 具體分為客戶端和服務(wù)端兩部分。

具體作用:

  • 集中管理配置文件;
  • 不同運(yùn)行環(huán)境不同的配置,動(dòng)態(tài)化地進(jìn)行配置更新,分環(huán)境部署(dev/test/prod/release)
  • 運(yùn)行期間動(dòng)態(tài)調(diào)整配置,不需要在每個(gè)服務(wù)部署的機(jī)器上編寫配置文件,配置變動(dòng)各個(gè)微服務(wù)能夠自動(dòng)拉取信息

二、配置中心服務(wù)器端搭建

配置中心服務(wù)端

1、SpringCloud Server使用Git 作為遠(yuǎn)程的配置文件倉庫存儲(chǔ)地址,我們需要先在遠(yuǎn)程建立好倉庫

2、修改pom.xml、application.yml

        <!-- SpringConfig Server -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
server:
  port: 3344
spring:
  application:
    name: cloud-config-server
  cloud:
    config:
      server:
        git:         #配置遠(yuǎn)程倉庫的地址
          uri: https://gitee.com/loserii/my_-spring-cloud_config.git
          password: xjxhhxjava2048
          username: loserii
          search-paths: xxxxx     #git倉庫下相對(duì)搜索地址
      label: master  #配置遠(yuǎn)程分支名
eureka:
  instance:
    instance-id: configServer
    prefer-ip-address: true
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:7001/eureka

配置完成后啟動(dòng)服務(wù),本地通過HTTP請(qǐng)求訪問遠(yuǎn)程倉庫上的配置文件時(shí)遵循以下格式的請(qǐng)求資源:

/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
  • {label} 作為遠(yuǎn)程倉庫的分支;
  • {application}-{profile} 作為遠(yuǎn)程倉庫上的配置文件名,比如config-test.yml

3、此外還可以配置多個(gè)存儲(chǔ)庫,配置相應(yīng)的匹配規(guī)則來讀取文件

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/spring-cloud-samples/config-repo
          repos:
            simple: https://github.com/simple/config-repo
            special:
              pattern: special*/dev*,*special*/dev*
              uri: https://github.com/special/config-repo
            local:
              pattern: local*
              uri: file:/home/configsvc/config-repo

pattern表示模式匹配,是帶有通配符{application}/{profile}名稱的逗號(hào)分隔列表。如果pattern不匹配任何模式,那么它就會(huì)使用spring.cloud.config.server.git.uri下的默認(rèn)uri。

三、配置中心客戶端搭建

3.1 配置同步機(jī)制介紹

客戶端通過SpringCloud Config Server來獲取到遠(yuǎn)程的Config環(huán)境配置,但是如果想要自己定義一些額外的配置,就需要另外創(chuàng)建一個(gè)配置文件。

客戶端項(xiàng)目中包含兩種配置文件:application.yml(用戶級(jí)的資源配置項(xiàng))、bootstrap.yml(系統(tǒng)級(jí)的資源配置項(xiàng),優(yōu)先級(jí)更高)

SpringCloud 會(huì)創(chuàng)建一個(gè) Bootstrap Context上下文,該上下文作為 Application Context的父上下文。初始化的時(shí)候,Bootstrap Context負(fù)責(zé)從外部源加載配置屬性并且解析配置。這兩個(gè)上下文共享一個(gè)從外部獲取的Environment

什么是Environment?

Environment用于存儲(chǔ)服務(wù)器的配置數(shù)據(jù),管理此行為的是EnvironmentRepository。Environment是Spring Environment(包括PropertySources作為主要功能)的域的淺層副本。

Environment資源由三個(gè)變量參數(shù)化:

  • {application}映射到客戶端的spring.application.name;
  • {profile}映射到客戶端上的 spring.profiles.active;
  • {label}標(biāo)記版本這一組件;

3.2 詳細(xì)配置

客戶端從配置服務(wù)中心獲取配置。

  • 修改 pom.xml、bootstrap.yml
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
spring:
  application:
    name: ConfigCenterClient
  cloud:
    config:
      fail-fast: false     #客戶端連接失敗時(shí)開啟重試,需要結(jié)合spring-retry、spring-aop
      label: master       #獲取配置文件的分支名
      name: config        #獲取的文件名
      profile: test       #文件后綴
      uri: http://localhost:3344  #配置中心服務(wù)端地址

eureka:
  instance:
    instance-id: config-client
    prefer-ip-address: true
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:7001/eureka
server:
  port: 3355

注意與eureka、cloud相關(guān)的配置需要放在bootstrap.yml文件中,程序啟動(dòng)時(shí)會(huì)先讀取bootstrap.yml然后再讀取application.yml

  • 測試配置讀取
@RestController
@RequestMapping("/test")
public class TestController {
    @Value("${config.info}")
    private String info;

    @GetMapping("/testInfo")
    public String test(){
        return info;
    }
}

3.3 分布式下的問題

測試時(shí)發(fā)現(xiàn)當(dāng)在遠(yuǎn)程倉庫修改配置文件數(shù)據(jù)后,本地的SpringCloud Config Server能夠在不重啟的情況下接收到新配置,但是本機(jī)的SpringCloud Config Client就不能直接獲取,必須進(jìn)行重啟。這在微服務(wù)很多時(shí)是不方便處理的。

解決方法: 客戶端向外部暴露監(jiān)控的端點(diǎn),結(jié)合@RefreshScope注解來解決

總結(jié)

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

相關(guān)文章

  • IntelliJ?IDEA安裝與基礎(chǔ)配置指南

    IntelliJ?IDEA安裝與基礎(chǔ)配置指南

    IntelliJ?IDEA是一款由JetBrains公司開發(fā)的Java集成開發(fā)環(huán)境,支持Java、Kotlin、Groovy、Scala等多種編程語言,IntelliJ?IDEA作為一款強(qiáng)大的開發(fā)工具,被廣泛應(yīng)用于Java開發(fā)、Web開發(fā)、Android開發(fā)等領(lǐng)域,本文給大家介紹了IntelliJ?IDEA安裝與基礎(chǔ)配置
    2025-07-07
  • springboot中配置好登錄攔截后,swagger訪問不了問題

    springboot中配置好登錄攔截后,swagger訪問不了問題

    這篇文章主要介紹了springboot中配置好登錄攔截后,swagger訪問不了問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java初始化塊及執(zhí)行過程解析

    Java初始化塊及執(zhí)行過程解析

    這篇文章主要介紹了Java初始化塊及執(zhí)行過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Java簡易登錄注冊(cè)小程序

    Java簡易登錄注冊(cè)小程序

    這篇文章主要為大家詳細(xì)介紹了Java圖形界面開發(fā),簡易登錄注冊(cè)小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • SpringBoot2.1 RESTful API項(xiàng)目腳手架(種子)項(xiàng)目

    SpringBoot2.1 RESTful API項(xiàng)目腳手架(種子)項(xiàng)目

    這篇文章主要介紹了SpringBoot2.1 RESTful API項(xiàng)目腳手架(種子)項(xiàng)目,用于搭建RESTful API工程的腳手架,只需三分鐘你就可以開始編寫業(yè)務(wù)代碼,不再煩惱于構(gòu)建項(xiàng)目與風(fēng)格統(tǒng)一,感興趣的小伙伴們可以參考一下
    2018-12-12
  • SpringBoot為什么要禁止循環(huán)依賴

    SpringBoot為什么要禁止循環(huán)依賴

    Spring?Boot禁止循環(huán)依賴主要因其會(huì)增加代碼復(fù)雜性、可能導(dǎo)致內(nèi)存泄漏和啟動(dòng)失敗,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-05-05
  • Java8 Stream中間操作實(shí)例解析

    Java8 Stream中間操作實(shí)例解析

    這篇文章主要介紹了Java8 Stream中間操作實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 詳解Java的TCP/IP編程學(xué)習(xí)--基于定界符的成幀

    詳解Java的TCP/IP編程學(xué)習(xí)--基于定界符的成幀

    這篇文章主要介紹了Java的TCP/IP編程學(xué)習(xí)--基于定界符的成幀,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Spring Boot Admin的使用詳解(Actuator監(jiān)控接口)

    Spring Boot Admin的使用詳解(Actuator監(jiān)控接口)

    這篇文章主要介紹了Spring Boot Admin的使用詳解(Actuator監(jiān)控接口),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Java Swing BoxLayout箱式布局的實(shí)現(xiàn)代碼

    Java Swing BoxLayout箱式布局的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Java Swing BoxLayout箱式布局的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評(píng)論

昆山市| 枣庄市| 淳化县| 丽江市| 筠连县| 桓仁| 昌乐县| 丰原市| 芦山县| 伊吾县| 松桃| 鹰潭市| 峡江县| 威海市| 太原市| 蓬安县| 浦北县| 鄯善县| 巴林右旗| 安义县| 五寨县| 泾阳县| 资兴市| 望谟县| 都昌县| 高阳县| 莫力| 仙桃市| 六盘水市| 石阡县| 绥滨县| 边坝县| 青冈县| 桃江县| 双江| 昌乐县| 红河县| 东城区| 尉氏县| 天柱县| 麻江县|