springcloud(二)配置中心config

2020-09-25 流星007

config配置中心介紹

spring cloud config是用來為分布式系統中的基礎設施和微服務應用提供集中化的外部配置支持,他為分服務端和客戶端。什麼意思呢?簡單點來說,再分布式架構中,通常會有很多的微服務,這時候就會產生很多的配置文件,springcloud config就是來集中管理這些配置文件,為什麼需要集中管理呢?放到各自服務的資源目錄下不香嗎?1、分布式架構配置文件多;2、在開發過程中我們通常會經歷3-4個伺服器環境,比如開發環境-----測試環境------預發布環境-------生產環境,作為開發人員,他們是不知道測試伺服器和生產服務資料庫連結信息的,如果採用將配置文件放到當前項目下,那麼每次發布版本的時候還要再項目中改來改去,很不友好,還有很重要的一點,那就是config配置中心支持修改配置無需重啟的功能,要想使用這個功能,還得引入spring cloud的另外一個組件:bus,這裡不做討論。

好了,廢話不多說,開始spring cloud config的項目搭建吧

1.需要有一個註冊中心,參考:

2.新建一個cloud-config的項目:

3.引入springcloud 與spring cloud config的依賴:

<properties> <java.version>1.8</java.version> <spring-cloud.version>Hoxton.RC2</spring-cloud.version> </properties> <dependencies> <!--配置中心config依賴--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <!--eureka客戶端--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> </repository> </repositories>

4.編寫配置文件bootstrap.yml

server: port: 9100 註冊中心地址spring: application: name: cloud-config active: native 拉取git配置 native: 本地拉起 git: uri: https://github.com/361426201/cloud-config.git username: xxxx 指定拉取git的那個分支 uri: xxxxxxxxxxxxx username: xxx password: xxx default-label: trunk search-paths: {application} could的配置信息一定要寫到bootstrap.yml中 如果希通過在配置中心找服務名的方式招待配置中心,那麼這個屬性就要設置成 true 默認false service-id: cloud-config 將這個設置成true 表示連接配置中心失敗,讓程序啟動失敗

打開cloud-order:請看:springcloud(一)註冊中心eureka。

<!--連接配置中心所需要的依賴--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency>

server: port: 8900 client: service-url: defaultZone: http://localhost:8761/eureka/ register-with-eureka: true 是否可以被檢索spring: application: name: cloud-order 因為cloud框架會優先讀取bootstrap.yml配置文件,如果發現這裡面沒有這些配置,那麼是無法將當前服務註冊到註冊中心的,這點需要特別注意,服務名也要寫到ootstrap.yml文件中哦 cloud: config: discovery: enabled: true 配置中心的服務名 fail-fast: true 2.0之後,默認的監控端點地址加了上下文路徑 actuator。可通過 management.endpoints.web.base-path屬性進行修改,默認是: actuator 配置刷新management: endpoints: web: exposure: include: &39;

4.由於我使用的是git,所以我在github上面準備了一份配置文件

這裡需要注意一點,在spring cloud config中配置文件的名字是有規則的,要與你的服務名一致,如果不一致,會找不到配置問及那,如果不想一致,也是可以的,可以在cloud-user的配置文件中做修改即可,默認情況一定要一致哦。

啟動eureka、config、cloud-user、cloud-order

為了方便測試,我在cloud-user中寫了一個controller類做測試:

對應git上面的配置文件:

cloud-user:

對應git配置文件:

瀏覽器訪問:http://localhost:8800/test:

瀏覽器輸入:http://localhost:8900/test:

看到如下結果,表示已經從git中獲取到了配置文件信息,好了,spring cloud config的配置就將到了這裡,這僅僅是一個入門案例,這裡面還可以為客戶端加密解密等功能,感興趣的小夥伴可以自己嘗試。

相關焦點

  • Spring Cloud 微服務入門教程(五):統一配置中心ConfigService
    上一節《Spring Cloud 微服務入門教程(四):微服務間的調用消費-FeignClient》我們講了微服務的新建和服務間的調用消費,隨著微服務的增多,那麼多SpringBoot程序,修改他們的配置文件會是很恐怖的工作量,所以微服務架構中還為我們提供了配置中心,這樣可以方便統一的管理我們的服務配置文件,同時線上生產環境的配置是不對開發人員開放的,這樣只需要運維人員維護線上的配置中心即可。
  • SpringCloud搭建-Config配置中心
    創建遠程倉庫1、登錄碼雲,沒帳號的先註冊,在登錄2、創建倉庫3、填寫倉庫的相關信息並提交4、創建好倉庫後,新建一個文件,然後把註冊中心的配置文件內容複製過去,提交即可注意:新建的文件名稱規範為:clientId-profile.properties
  • SpringCloud搭建-ConfigClient調用配置中心
    在上一節,我搭建了config-service的配置中心服務,但是要如何使用他呢?我們以測試服務為例:添加依賴在測試服務的pom.xml中引入以下依賴:<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-client</artifactId></dependency
  • [極簡SpringCloud]8.2 Config配置中心的批量刷新
    Springcloud已經實現了這個功能,如下:各個配置中心的使用者都通過消息總線接收消息。在一個使用者節點上(如圖ServiceA-3)上執行/bus/refresh操作。會像消息總線發送更新配置消息。其他節點(ServiceA-1,ServiceA-2)接收到消息,也會重新拉取新的配置內容。需要使用到消息中間件 kafka。
  • springcloud(三)網關zuul
    nginx是需要在配置文件中配置多個location來指定跳轉的,二網關不同,網關既可以通過別名跳轉,同時也支持服務名跳轉,什麼意思?你的請求路徑只要匹配到服務名,就可以省略一大堆的配置,而且zuul是java編寫的,集成更好。
  • SpringCloud搭建-Config配置中心遠程倉庫路徑優化
    前面講了spring cloud config的配置以及使用,是從碼雲上拉取配置文件,不知道大家有沒有發現spring cloud config默認情況下只會獲取碼雲倉庫中根路徑下的配置文件,如下圖:紅框中的配置文件才可以獲取得到,但是若是當我們的微服務數量增加時,很多配置文件都放在根目錄是不是會顯得很亂呢
  • Spring Cloud 微服務入門教程(六):Spring Cloud BUS 消息總線
    上一節我們講了《Spring Cloud 微服務入門教程(五):統一配置中心-ConfigService》實現了統一管理配置,在文末我也說了依賴重啟才能自動拉取配置,所以本章節就講一下利用Spring Cloud BUS 消息總線來自動更新配置文件,這將實現應用無需重啟就可以熱更新配置文件。
  • springcloud(四)消息總線Bus
    這可以用於廣播狀態更改(例如配置更改)或其他管理指令。一個關鍵的想法是,Bus就像一個擴展的Spring Boot應用程式的分布式執行器,但也可以用作應用程式之間的通信渠道。當前唯一的實現是使用AMQP代理作為傳輸,但是相同的基本功能集(還有一些取決於傳輸)在其他傳輸的路線圖上。
  • SpringCloud系列之分布式配置中心學習
    ,隨著業務增長,肯定會有很多配置,分散管理,不能實現統一的管理,所以就有了微服務的配置文件統一管理組件,比如spring cloud官方的spring cloud config、攜程的 Apollo,還有最近比較火的阿里 nacos,每款產品各有自己的特點,不過本博客只介紹spring cloud config作為一款分布式的配置中心,其基本的功能應該有統一的配置文件管理,至於怎麼存儲可以自行設計
  • 使用Spring Cloud Config統一管理配置
    </groupId>  <artifactId>spring-cloud-config-server</artifactId>  <version>2.2.0.RELEASE</version></dependency>只需要一個就行了,它已經包含了web和
  • springCloud整合Eureka之服務註冊與發現(二)
    前言在上一篇我們介紹的是EurekaServer,本篇介紹的是EurekaClient,從中我們知道springCloud已經抽象了相關服務註冊與發現的接口,在我們接入某個註冊中心時,只需要實現對應的接口就可以了。接下來我們介紹springCloud如何整合Eureka做服務註冊與發現。
  • springcloud(五)遠程調用Feign(含源碼跟蹤)
    (一)註冊中心eureka2.新建config配置中心請參考:springcloud(二)配置中心config3.打開cloud-order,引入openFeign依賴<!;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.
  • Spring Cloud 微服務入門教程(七):Spring Cloud Stream
    上一節的《Spring Cloud 微服務入門教程(六):Spring Cloud BUS 消息總線實現配置中心動態更新配置文件》已經安裝了RabbitMQ消息隊列,並實現了SpringCloudBus消息總線,本節介紹Spring Cloud Stream 消息隊驅動式的微服務。可以使用RabbitMQ、Apache Kafka等,用於微服務之間的異步消息傳遞和接收。
  • springcloud(一)註冊中心eureka
    eureka介紹eureka屬於springcloud中的一個組件,叫註冊中心,什麼叫註冊中心?它是用來幹什麼的呢?作用:服務註冊與發現,在分布式環境中,一個完整的系統可能是由幾個、幾十、或者幾百個服務組合在一起的一套架構, eureka就是將這些毫不相關的服務管理到一起。
  • Spring Config整合Kubernetes管理配置
    :server.port=8888spring.application.name=config-server-k8sspring.cloud.config.server.git.uri=https://github.com/pkslow/pkslow-configspring.cloud.config.server.git.username=admin@pkslow.comspring.cloud.config.server.git.password=***spring.cloud.config.server.git.default-label
  • 09-SpringCloud實戰攻略-負載策略配置(8)
    1、整理負載均衡代碼1)、增加RestTemplate配置類package com.mazong.serverbloggood.config;import org.springframework.cloud.client.loadbalancer.LoadBalanced;import org.springframework.context.annotation.Bean
  • 灰度實戰(五):SpringCloud灰度(1)
    ;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.EnableEurekaClient;import org.springframework.cloud.netflix.zuul.EnableZuulProxy;import
  • SpringCloud Nacos 服務動態配置
    環境:springboot2.2.10,springcloud Hoxton.SR1pom.xml文件依賴<properties> <java.version>1.8</java.version> <spring-cloud.version
  • Spring Cloud Alibaba訓練營——分布式配置
    )+ 文件後綴名(.properties) 組成,點擊「發布」按鈕(紅色箭頭所指),配置內容為:user.name=nacos-config-sampleuser.age=90複製代碼發布成功後,控制臺會出現提示彈出框。
  • Rancher部署Spring Cloud微服務(初探)
    二、安裝單節點rancher2.1 下載鏡像包官方2.x文檔DockerHubdocker pull rancher/rancher:stablecontrolplane --worker四、 部署spring