config概述
配置中心提供了一箇中心化的外部配置,預設使用git儲存配置資訊,這樣就可以對配置資訊進行版本管理,下邊配置中心的搭建就是以git為基礎進行的。配置中心是單獨作為一個服務執行的。
spring cloud 允許執行時動態重新整理配置,可以重新從配置中心獲取新的配置資訊。
bootstrap.yml引導配置檔案,先於 application.yml 載入。
config實現
第一步:新建java專案config
當作一個資料夾,用來存放配置檔案。
第二步:賦值sp02、03、04、11的配置檔案至config,並重新命名
spring的profile檔案說明:
#item-service.yml - 主配置
#item-service-dev.yml - 開發 開發時啟動,主+開發合併,同時啟動。
#item-service-test.yml - 測試
#item-service-dev.prod - 生產
#item-service-xxx.yml -
第三步:config中的4個配置檔案均新增配置並註釋sp02、sp03、sp04、sp11的配置檔案
#新增配置,當遠端倉庫的配置與本地倉庫的配置衝突時,以本地倉庫的配置為主
cloud:config:override-none: true
分別建立配置檔案item-service-dev.yml:
# item-service-dev.yml
#給應用起個名,向註冊中心註冊時用這個名稱註冊
#註冊資訊:item-service ----->localhost:
spring:
application:
name: item-service
#設定禁止配置中心的配置將客戶端配置覆蓋掉
cloud:
config:
override-none: true
server:
port: 8001
eureka:
client:
service-url:
defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
註釋sp02、sp03、sp04、sp11的配置檔案:
## application.yml
#
##給應用起個名,向註冊中心註冊時用這個名稱註冊
##註冊資訊:item-service ----->localhost:
#spring:
# application:
# name: item-service
#
#server:
# port: 8001
#
#eureka:
# client:
# service-url:
# defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
第四步:建立本地倉庫
選擇本地倉庫目錄和檔案
第五步:把本地倉庫提交推送到gitee遠端倉庫
1.點選commit
2.勾選要提交的檔案,填寫提交資訊,進行提交
點選commit,提交檔案至本地倉庫
3.gitee上建立倉庫springcloud1
複製倉庫地址
4.點選push,開始從本地倉庫推送至遠端倉庫。
填寫連結點選ok
push推送
檢視是否推送成功
第六步:建立springboot專案sp12-config
第七步:新增config server、eureka依賴
<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>
第八步:配置pom檔案
spring:
application:
name: config-server
cloud:
config:
server:
git:
uri: https://github.com/duchaosa/springcloud1
searchPaths: config
#username: your-username
#password: your-password
server:
port: 6001
eureka:
client:
service-url:
defaultZone: http://eureka1:2001/eureka, http://eureka2:2002/eureka
第九步:主程式新增註解@EnableConfigServer 和 @EnableDiscoveryClient
package cn.tedu.sp12;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.config.server.EnableConfigServer;
@EnableConfigServer
@EnableDiscoveryClient
@SpringBootApplication
public class Sp12ComfigApplication {
public static void main(String[] args) {
SpringApplication.run(Sp12ComfigApplication.class, args);
}
}
第十步:啟動伺服器sp12,訪問測試
http://localhost:6001/item-service-dev.yml
http://localhost:6001/item-service/dev
第十一步:配置中心客戶端
1.在sp02、sp03、sp04、sp11專案的pom
檔案中分別新增config依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
2.在sp02、sp03、sp04、sp11專案中分別建立bootstrap.yml檔案
從eureka註冊中心拉取config伺服器,並獲取客戶端配置檔案。
引導配置檔案,先於 application.yml 載入。
item-service:
# bootstrap.yml
# 獲取地址表,要從登錄檔獲取配置中心得地址
eureka:
client:
service-url:
defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
spring:
cloud:
config:
discovery:
enabled: true
service-id: config-server #配置中心的服務id
# item-service-dev.yml
name: item-service
profile: dev
user-service:
# bootstrap.yml
# 獲取地址表,要從登錄檔獲取配置中心得地址
eureka:
client:
service-url:
defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
spring:
cloud:
config:
discovery:
enabled: true
service-id: config-server #配置中心的服務id
# user-service-dev.yml
name: user-service
profile: dev
order-service:
# bootstrap.yml
# 獲取地址表,要從登錄檔獲取配置中心得地址
eureka:
client:
service-url:
defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
spring:
cloud:
config:
discovery:
enabled: true
service-id: config-server #配置中心的服務id
# order-service-dev.yml
name: order-service
profile: dev
zuul-service:
# bootstrap.yml
# 獲取地址表,要從登錄檔獲取配置中心得地址
eureka:
client:
service-url:
defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
spring:
cloud:
config:
discovery:
enabled: true
service-id: config-server #配置中心的服務id
# zuul-dev.yml
name: zuul
profile: dev
3.啟動伺服器,檢視伺服器是否已成功拉起配置檔案。