分佈式系統面臨的配置問題:
微服務意味着要將單體應用中的業務拆分成一個個子服務,每個服務的粒度相對較小,因此係統中會出現大量的服務。
由於每個服務都需要必要的配置信息才能運行,所以一套集中式的、動態的配置管理設施是必不可少的。 SpringCloud提供了 ConfigServer來解決這個問題,我們每一個微服務自己帶着一個application.yml,上百個配置文件的管理......
是什麼??
SpringCloud Config爲微服務架構中的微服務提供集中化的外部配置支持,配置服務器爲各個不同微服務應用的所有環境提供了一個中心化的外部配置.
怎麼玩?
SpringCloud Config分爲服務端和客戶端兩部分.
服務端也稱之爲分佈式配置中心,它是一個獨立的微服務應用,用來連接配置服務器併爲客戶端提供獲取配置信息,加密/解密信息等訪問接口.
客戶端則是通過指定的配置中心來管理應用資源,以及與業務相關的配置內容,並在啓動的時候從配置中心獲取和加載配置信息
配置服務器默認採用git來存儲配置信息,這樣就有助於對環境配置進行版本管理,並且可以通過git客戶端工具來方便的管理和訪問配置內容。
作用:
話不多說,貼操作步驟:
既然看上圖也發現config的服務端要和githup打交道,那麼第一件事,去githup上弄個倉庫,要是不會請自行百度
然後你需要弄個配置文件application.yml上傳到那個倉庫,因爲命令的方式不記得了,太麻煩,所以直接使用idea將文件弄上去,見步驟圖:
選擇你準備放配置文件的文件夾
編寫配置文件:
spring:
profiles:
active:
- dev
---
spring:
profiles: dev #開發環境
application:
name: microservicecloud-config-hw-dev
---
spring:
profiles: test #測試環境
application:
name: microservicecloud-config-hw-test
弄完之後需要將這個文件上傳到githup上
右鍵文件然後提交:
然後再提交到雲倉庫:
見倉庫:
繼續弄一個config服務端的微服務model
pom文件
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
<version>1.4.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.3.5.RELEASE</version>
</dependency>
主啓動類上加上註解,老規矩了:
@EnableConfigServer //config服務端
編寫這個model的配置文件:
server:
port: 3344
spring:
application:
name: microservicecloud-config
cloud:
config:
server:
git:
uri: https://github.com/beyondObject/microservicecloud-config.git #GitHub上面的git倉庫名字
skip-ssl-validation: true
啓動我們的這個model,然後訪問:
能訪問到我們上傳的配置文件的內容就證明這個步驟是ok的,然後的話還有幾種訪問方式都示例一下:
這個master其實就是分支名,玩過的都知道哈.. 大致說一下這個套路,我們通過瀏覽器去訪問我們的config服務端,然後它去githup上拿數據,這樣操作的好處就是假設我們的項目上線後需要改動配置文件中的內容的話,我們不需要重寫修改Jar包,我們只需要通過修改githup上上傳的配置文件我們就能靈活的修改線上項目的配置文件,這個點會在下面有所體現...
下面咱們使用一個客戶端通過服務端然後去githib上拿裏面的配置信息:
嗯,由於作者跟着視頻弄了一天,明明各種操作都一模一樣,但是客戶端的Model就是不能通過服務端往githup中獲取信息,所以下面就借別人的幾篇博客讓大家實際去操作一波,這個思維和這個config分佈式配置中心的套路明白了之後其實用起來還是蠻簡單的:
https://www.cnblogs.com/huangjuncong/p/9069749.html
https://www.cnblogs.com/shamo89/p/8016908.html