1. spring cloud config 瞭解
spring cloud config 爲微服務架構中的各個服務提供了集中化的外部配置,配置服務器爲各個不同的微服務環境提供了一個中心化的配置。
簡單的來說,可以將一些配置信息放在git上面,config通過方式獲取git上面的配置信息,在分給需要配置的 分佈式服務
解決了部署導致配置文件不好管理的問題,而且配置環境有開發環境測試環境和上線環境,用了config之後就很好的改變配置
2. config具體的使用
2.1 創建一個遠程git遠程庫
這裏就不說了,你可以創建github 或者是 碼雲
創建成功後 複製倉庫地址
先留着之後配置需要用
2.2 創建一個新的工程子項目 關聯後開始導依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<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>
記得最好要把這個工程綁定到euerka上面,包也有可以看我前面的文章,這裏直說config
2.3 application.yml文件配置
#開放端口
server:
port: 8989
spring:
cloud:
config:
server:
git:
#git上的地址複製到這裏
uri: https://github.com/pretty-cat/spring-cloud-config-center.git
#如果是私有倉庫你需要登錄你的賬號密碼(沒有不用謝這兩個)
username: xxxx沒有不填寫
password: 沒有不寫
application:
name: cloud-config
#eureka的配置
eureka:
client:
register-with-eureka: true
fetch-registry: false
service-url:
defaultZone: http://localhost:8761/eureka/
instance:
prefer-ip-address: true
2.4 啓動類配置
加一個註解 @EnableConfigServer
@SpringBootApplication
@EnableConfigServer
@EnableEurekaClient
public class CloudConfigApplication {
public static void main( String[] args ) {
SpringApplication.run(CloudConfigApplication.class, args);
}
}
3 測試
你可先放一個yml文件放到git上,之後按步驟配置好
在瀏覽器輸入:http://localhost:8989/application-dev.yml
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-BksRnw7P-1570769926161)(7091BC22191A449DAB587C81723334E0)]
其中application爲github中配置文件的文件名,dev爲配置文件中application.profiles的值
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-lD5L6fPp-1570769926163)(E07E41828A184F4B913449A67AC3FD84)]
如果測試沒問題,說明這個子工程就搞定了
接下來我們就需要去其他需要配置放到git上的子工程操作了
4. 配置客戶端
4.1 相關依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--主要的配置包-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
4.2 application.yml配置放到git上
這裏注意了:
- 我們的子項目都有端口,所以我們爲了區分最好要在appplication後加上你的端口號別搞混了
- 我們一個子工程的yml配置需要放3份 開發環境下的(dev) 測試的(test) 本身的(不寫)
- 注意注意一定要分清楚
4.3 bootstrap.yml配置用來指定遠端的配置
因爲配置都放到遠端了,所以我們需要,指定我們要的配置,而且不能用application了
創建一個bootstrap.yml
spring:
cloud:
config:
name: git上的文件名 #文件名
profile: dev/test/pro #加載哪個文件
uri: http://localhost:8989 #config服務器的地址
注意:因爲application.yml文件我們放到了git中,所以我們在代碼中就不需要application.yml了,可以重命名成bootstrap.yml在放入一下代碼,不然會配置文件衝突導致開啓不了(報一大堆到不到配置的錯)
之後運行,就沒問題了!