爲什麼要使用Config組件
1.可以有效解決分佈式環境中配置不統一的問題。
2.更改配置時不用重啓服務。
什麼是配置中心Config
Spring Cloud Config 是用來爲分佈式系統中的基礎設施和微服務應用提供集中化的外部配置支持,它分爲服務端與客戶端兩個部分。其中服務端也稱爲分佈式配置中心,它是一個獨立的微服務應用,用來連接配置倉庫併爲客戶端提供獲取配置信息、加密 / 解密信息等訪問接口;而客戶端則是微服務架構中的各個微服務應用或基礎設施,它們通過指定的配置中心來管理應用資源與業務相關的配置內容,並在啓動的時候從配置中心獲取和加載配置信息。
配置中心Config怎樣解決分佈式環境中配置不統一的問題和實時更新配置
springcloud有着強大的生態支持,其自帶的分佈式配置中心可以有效解決分佈式環境中配置不統一的問題,提供一箇中心化的配置中心。並且依靠其springcloud_bus(rabbitMq提供訂閱)和github或者gitlab自帶的webhook(鉤子函數)可以實現將修改好後的配置push到遠程git地址後,通過訪問配置服務器的endPoints接口地址,便可將配置中心的變化推送到各個集羣服務器中。
首先本次採用的spring_cloud版本是:Finchley.RELEASE。spring_boot版本是2.0.3.RELEASE,
配置中心服務器的依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-bus</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-monitor</artifactId>
</dependency>
新建github的倉庫,放置配置文件。
配置文件:application.yml
server:
port: 8787
#註冊中心
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
#配置放置配置文件的git地址
spring:
application:
name: config
cloud:
config:
server:
git:
uri: https://github.com/XXX.git
username: [email protected]
password: XXX
#保存到本地的配置倉庫中
basedir: E:\springcloud\config-repo
management:
endpoints:
web:
expose: "*"
啓動配置中心,看是否註冊到了註冊中心
查看rabbitMQ看是springcloud_Bus是否在隊列中
在github修改配置,查看配置文件發現更新了配置文件