Spring Cloud Config 分布式配置中心

2020-04-12 16:07:44來源:博客園 閱讀 ()

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

Spring Cloud Config 分布式配置中心

Spring Cloud Config 簡介

在分布式系統中,由于服務數量巨多,為了方便服務配置文件統一管理,實時更新,所以需要分布式配置中心組件。

Spring Cloud 中,有分布式配置中心組件 Spring Cloud Config ,它支持配置服務放在配置服務的內存中(即本地),也支持放在遠程 Git 倉庫中。

Spring Cloud Config 組件中,分兩個角色,一是服務端 Config Server ,二是客戶端 Config Client

Spring Cloud Config 服務端

引入依賴

pom.xml 中主要添加 spring-cloud-starter-netflix-eureka-serverspring-cloud-config-server 依賴

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>

相關配置

需要在 bootstrap.yml 中配置,原因是可以優先加載配置。

spring:
  cloud:
    config:
      label: {git倉庫標簽}
      server:
        git: 
          uri: {git倉庫地址}
          search-paths: {倉庫內文件存放路徑}
          username: {用戶名}
          password: {密碼}

配置說明:

  • spring.cloud.config.label:配置倉庫的分支
  • spring.cloud.config.server.git.uri:配置 Git 倉庫地址(GitHub、GitLab、Gitee …)
  • spring.cloud.config.server.git.search-paths:配置倉庫路徑(存放配置文件的目錄)
  • spring.cloud.config.server.git.username:訪問 Git 倉庫的賬號
  • spring.cloud.config.server.git.password:訪問 Git 倉庫的密碼

注意:如果使用 GitLab 作為倉庫的話,spring.cloud.config.server.git.uri 需要在結尾加上 .git,GitHub 則不用。

在 Git 倉庫中創建配置文件存放目錄

在Git 倉庫中創建文件夾,用于存放各個服務的資源配置文件。

一般在開發環境中,都會獨立出一個 Git 項目用來存放資源配置配置文件。

HTTP 請求配置文件示例

  • http://{ip}:{port}/{applicationName}/{profile}[/{label}]
  • http://{ip}:{port}/{applicationName}-{profile}.yml
  • http://{ip}:{port}/{label}/{applicationName}-{profile}.yml

Spring Cloud Config 客戶端

引入依賴

hello-spring-cloud-netflix-eureka 工程的 pom.xml 中添加 spring-cloud-starter-config 依賴

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

創建云配置文件

在 Git 倉庫中存放配置文件的目錄下創建 hello-spring-cloud-netflix-eureka-dev.yml

spring:
  application:
    name: hello-spring-cloud-netflix-eureka

server:
  port: 8761

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

本地配置

修改 hello-spring-cloud-netflix-eureka 工程的 applicaiton.ymlbootstrap.yml 并清空文件

bootstrap.yml 中添加 spring-cloud-config 客戶端的配置

spring:   
  cloud:     
    config:       
      uri: http://localhost:8888       
      name: hello-spring-cloud-netflix-eureka-dev       
      label: master       
      profile: dev

配置說明:

  • spring.cloud.config.uri:配置服務中心的網址
  • spring.cloud.config.name:配置資源配置文件名稱(不含后綴)
  • spring.cloud.config.label:配置倉庫的分支
  • spring.cloud.config.profile:配置文件的環境標識
    • dev:表示開發環境
    • test:表示測試環境
    • prod:表示生產環境

測試云配置

  • 依次啟動 spring-cloud-config > spring-cloud-eureka 服務
  • 訪問 Eureka 界面 http://localhost:8761
  • 文章作者:彭超
  • 本文首發于個人博客:https://antoniopeng.com/2019/11/25/springcloud/SpringCloudConfig%E5%88%86%E5%B8%83%E5%BC%8F%E9%85%8D%E7%BD%AE%E4%B8%AD%E5%BF%83/
  • 版權聲明:本博客所有文章除特別聲明外,均采用 CC BY-NC-SA 4.0 許可協議。轉載請注明來自 彭超 | Blog!

原文鏈接:https://www.cnblogs.com/antoniopeng/p/12687628.html
如有疑問請與原作者聯系

標簽:IEname添加系統POSTNET

版權申明:本站文章部分自網絡,如有侵權,請聯系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點,本站所提供的攝影照片,插畫,設計作品,如需使用,請與原作者聯系,版權歸原作者所有

上一篇:JVM類加載過程詳細分析

下一篇:基于JAVA-SSM框架的B/S微博系統的設計與實現

宅男午夜福利美女来袭