[java]微服務架構連載No7 配置中心Config
配置中心:為分散式系統中的基礎設施和微服務應用提供集中化的外部配置支援, 包括環境,動態配置...
工程結構 spring-cloud-06-config-server 配置中心
spring-cloud-06-config-client 微服務
spring-cloud-06-config-server 配置中心
第一步: pom.xml 匯入相關依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId></dependency>
第二步: (1) 配置埠 7001
(2) 配置git 地址: https://gitee.com/zhouguang666/springconfig
spring: application: name: config-server cloud: config: server: git: uri: https://gitee.com/zhouguang666/springconfig #相當prefix # search-paths: # - /user-service # 相對路徑# - /role-service server: port: 7001 context-path: /
git 地址目錄結構如下:
config_client-dev.properties 內容
from=git-dev
config_client.properties 內容
from=git-default
第三步: 開啟配置中心
@EnableConfigServer //開啟配置中心 @SpringBootApplication public class ServerApplication { public static void main(String[] args) { SpringApplication.run(ServerApplication.class, args); } }
spring-cloud-06-config-client 微服務
第一步: 匯入相關依賴
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> </dependencies>
第二步: 配置檔案 bootstrap.yml
(1) 埠 7002
(2) 指向配置中心 7001 埠
注意: application.name +"-"+ config.profile = git上配置檔名, spring約定大於配置, 不能隨便寫,要保持一致
(3)關閉自動重新整理許可權驗證 security.enabled, 保證手動自動重新整理介面 /refresh 不需要使用者密碼
spring: application: name: config_client cloud: config: uri: http://localhost:7001/ ## 表示配置中心地址 profile: dev # 環境 label: master # 分支 server: context-path: / port: 7002 management: security: enabled: false # spring 安全驗證 , fasle:自動重新整理不用輸入密碼
第三步:開啟springboot 專案配置
@SpringBootApplication public class ClientApplication { public static void main(String[] args) { SpringApplication.run(ClientApplication.class, args); } }
第四步: (1) 配置自動重新整理作用域
(2) 使用配置檔案屬性 from
@RefreshScope //動態重新整理 >重新整理作用域 @RestController public class FromController { @Value("${from}") private String from; @GetMapping("/from") public String from(){ return "from is :"+from; } }
期望結果
截圖 1: 呼叫服務 http://localhost:7002/from 返回 from值 為 git-dev
截圖2: 修改 git 配置檔案config_client-dev.properties from=git-dev-0.1 並提交
截圖2: 呼叫自動重新整理介面 http://localhost:7002/refresh 重新整理配置
截圖4: 呼叫服務 http://localhost:7002/from 返回 from值 為 git-dev-0.1
截圖1:
截圖2:
截圖3
截圖4: