Spring Cloud實戰之初級入門(五)— 配置中心服務化與配置實時刷新

1.環境介紹

這一篇文章中我們終於沒有新工程要建了,主要是對現有的工程進行改造。在傳統的開發中,我們可能會把用戶、機構、資源、權限這些比較通用的東西抽取出來做一個底層平臺,但是在spring cloud的世界裏,所有的都是服務;所有的服務都可以集羣部署。

2.配置中心服務化

2.1 改造mirco-service-spring-config

因爲我們之前在git上上傳的配置目錄也叫mirco-service-config,所以我把之前的配置中心工程改爲了mirco-service-spring-config。

  • 爲“mirco-service-spring-config”工程的pom文件中加入
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>
  • 配置文件中加入
eureka:
  client:
    service-url:
      defaultZone: http://localhost:9001/eureka/
  • 爲啓動文件加入@EnableDiscoveryClient註解

2.2 改造mirco-service-provider、mirco-service-consumer

主要是配置文件的改動,改動後的bootstrap.yml配置文件如下

spring:
  cloud:
    config:
      discovery:
        service-id: service-config-server #新加入的配置
        enabled: true  #打開配置文件從註冊中心獲取
      #uri: http://localhost:7001/
      profile: test
      name: provider
      label: master
       
eureka:
  client:
    service-url:
      defaultZone: http://localhost:9001/eureka/

因爲這裏面要從註冊中心找到配置中心,再從配置中心找配置文件,而bootstrap.yml文件啓動的時間比較早,所以這裏一定要加入註冊中心的地址。用同樣的方法改造mirco-service-consumer。至此,改造完成。

3. 配置中心實時刷新

我們這裏面以mirco-service-consumer爲例。

3.1 加入依賴

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>

這裏的actuator之前在第一章的視頻裏面講過,這是一個用來做應用健康檢查的組件,同時也可以做應用配置的刷新。

3.2 加入配置

  1. 爲了方便演示,我們就直接在bootstrap.yml文件中加入如下配置:
management:
  endpoints:
    web:
      exposure:
        include: "*"

這個配置的意思是放開actuator相關的目錄限制,沒放開之前http://localhost:8002/actuator/env是看不到東西的,能看出說明配置成功。
2. 在MyFristConsumerController上加入@RefreshScope註解,只要類上加了@RefreshScope註解,並且類中有配置文件相關的變量,在應用配置刷新時,都會被更新。

3.3 測試

  • 訪問http://localhost:8002/consumerHelloWorld?name=rose,看到我們的port是8002。
  • 修改github上的consumer.yml,將port改爲8003。
  • 使用"curl -X POST http://localhost:8002/actuator/refresh"刷新配置。
  • 重複第一個步驟,可以看到port變爲8003。
  • 由於我們這裏改的是應用服務的端口,而我們刷新後,在應用中的參數配置確實變了,但訪問端口還是8002,說明這個刷新配置也是有侷限的,已啓動的應用實際訪問端口不會變。但下次啓動時會變。

4.一點點重要的事情

發佈了12 篇原創文章 · 獲贊 5 · 訪問量 5743
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章