springcloud-spring cloud config統一配置中心


統一配置中心

為什么需要統一配置中心?

統一配置中心顧名思義,就是將配置統一管理,配置統一管理的好處是在日后大規模集群部署服務應用時相同的服務配置一致,日后再修改配置只需要統一修改全部同步,不需要一個一個服務手動維護

統一配置中心的架構圖:

服務者消費者集群,路由集群Zuul的配置文件可以全部交由config管理,Eureka Server配置是絕對不行的,因為Config配置中心也是作為一個Client服務注冊到Eureka Server的,先有Server。

1.配置中心服務器的開發

1.添加依賴
      <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
2.添加注解支持@EnableConfigServer
@EnableEurekaClient
@EnableConfigServer
@SpringBootApplication
public class EurekaApplication {
	public static void main(String[] args) {
		SpringApplication.run(EurekaApplication.class, args);
	}
}
3.在遠程的倉庫創建配置文件(yml,properties,yaml)

在這里我對兩個服務者的配置文件進行管理

規則說明:加入你在github倉庫添加了一個名為product.properties的配置文件,並且開啟了配置中心服務器(假設端口為9999),使用瀏覽器測試訪問:http://localhost:8766/product.properties 是訪問不到任何內容的,訪問http://localhost:8766/product-xxxxx.properties(xxx隨便寫)是可以訪問到的,這是Config配置中心的規則,下面會說到,另一方面配置文件合並規則,在學習springboot時我們可以將配置文件拆分:主配置文件 application.yml存放公共配置 測試環境:testapp.yml 生產環境:product.yml 使用時根據情況主配置引入不同的副配置文件,這里Config配置中心規則與springboot是相似的。

如下倉庫文件:

[product.properties]

eureka.client.service-url.defaultZone=http://peer:8761/eureka,http://peer1:8765/eureka
spring.application.name=eureka-provider

[product-8763.properties]

server.port=8763

[product-8764.properties]

server.port=8764

訪問: http://localhost:9999/product-xxxxx.properties 得到公共配置文件

訪問: http://localhost:9999/product-8763.properties 公共配置與8763私有配置的合並

訪問: http://localhost:9999/product-8764.properties 公共配置與8764私有配置的合並

.properties后綴是可以修改為yml,yaml,json 以對應的格式返回在瀏覽器上。

4.配置相關的配置文件
#注冊到注冊中心
eureka.client.service-url.defaultZone=http://localhost:8761/eureka
#默認端口號 8888
server.port=9999
# 實例名
spring.application.name=config
#配置git的遠程倉庫   https 暫時不支持ssh
spring.cloud.config.server.git.uri=https:xxxxxxx
5.啟動配置中心服務

http://localhost:9999/order-a.yml

http://localhost:9999/order-a.yaml

http://localhost:9999/order-a.properties

http://localhost:9999/order-a.json

以上四種訪問方式都可以

{name}/{profiles:.[^-].}

{name}-{profiles}.json

{label}/{name}-{profiles}.yml

{name}/{profiles}/{label:.*}

{label}/{name}-{profiles}.properties

{label}/{name}-{profiles}.json

{name}/{profile}/{label}/**

{name}/{profile}/{label}/**

說明:

label: 分支名稱 默認是master分支

name:文件的服務的名稱(自定義的名稱)

profiles:不同環境

2.配置中心客戶端使用

凡是交由配置中心管理的Client,想要獲取配置文件需要添加以下依賴

1.導入相關依賴
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-client</artifactId>
</dependency>
2.添加配置
#開啟配置中心
spring.cloud.config.enabled=true
#找到配置中心實例
spring.cloud.config.discovery.service-id=CONFIG
#指定名字
spring.cloud.config.name=product
#指定環境 8763或8764 由客戶端的不同而改變
spring.cloud.config.profile=8763
#指定分支
spring.cloud.config.label=master
#指定配置中心的uri
spring.cloud.config.uri=http://localhost:9999

注意:spring.cloud.config.uri=xxx必須指定Config配置中心的地址,如果不指定默認則從8888端口fetch配置是不成功的,除非你的配置中心端口就是8888。

3.注意將配置文件名修改為 bootstrap.yml 表示從雲端獲取配置文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM