我們使用spring cloud分散式微服務雲架構做了b2b2c的電子商務系統,除了架構本身自帶的系統服務外,我們將b2b2c的業務服務進行了細粒度拆分,做成了不同的業務微服務。
當我們的業務系統越來越龐大複雜的時候,各種配置也會隨之增多。配置檔案只要一修改,會對commonservice-config配置中心先停止服務,然後再重新啟動,最後使配置生效。
如果服務少,我們可以手動方式來啟動,但是對業務和系統的穩定性肯定有一定的影響。
如果是成百上千的服務都靠手動操作,我估計運維人員或技術人員會瘋掉的。
針對以上問題,commonservice-config服務端和業務微服務分別做了相關的配置,服務端負責將git(svn或本地檔案系統)中儲存的配置檔案進行配置化(我們使用的是本地配置方案,方便直接將配置檔案更新到linux上),
業務微服務通過配置從服務端配置中心獲取相關配置,如果配置檔案變動了,通過重新整理業務微服務的方式,將最新的配置資訊獲取。
spring cloud Bus通過一個輕量級訊息代理連線分散式系統的節點。這可以用於廣播狀態更改(如配置更改)或其他管理指令。
接下來,我們就來實施通過spring cloud Bus方案,動態重新整理服務端配置,具體步驟如下:
2. 業務微服務配置(以honghu-member-servcie會員服務為例):
pom檔案配置:
<span style="font-size: 16px;"> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId><span style="font-size: 16px;">spring-boot-starter-actuator</span></artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId><span style="font-size: 16px;">spring-cloud-starter-bus-amqp</span></artifactId>
</dependency></span>複製程式碼
yml檔案配置:
<span style="font-size: 16px;">server:
port: 5012
spring:
application:
name: honghu-member-client
profiles:
active: dev,discoveryClient
cloud:
config:
discovery:
enabled: true
service-id: commonservice-config-server
<span style="color: #ff0000;"><strong>name: honghu-member
profile: dev
bus:
trace:
enabled: true #開啟訊息跟蹤 </strong>
<strong>rabbitmq:
host: 192.168.1.254
port: 5672
username: honghu
password: honghu</strong> </span>
eureka:
client:
serviceUrl:
defaultZone: http://honghu:123456@localhost:8761/eureka/
instance:
prefer-ip-address: true
logging:
level:
root: INFO
org.springframework.security: INFO
management:
security:
enabled: false
security:
basic:
enabled: false</span>複製程式碼
3. 檢視註冊中心,commonservice-config、honghu-member-service服務是否已經註冊成功
4. 訪問一下profile,獲取profile對應的配置資訊(原配置):
訪問http://localhost:7071/profile ==》 訪問結果:123456
5. 修改config配置中心的配置檔案,將profile=123456修改為honghu123456
再次訪問http://localhost:7071/profile ==》 訪問結果:123456
6. 使用spring cloud bus 重新整理方案(使用post man測試工具進行測試)
http://localhost:7071/bus/refresh
再次訪問http://localhost:7071/profile ==》 訪問結果:honghu123456
到此,整個commonservice-config配置中心動態重新整理方案整理完畢!
歡迎大家和我一起學習spring cloud構建微服務雲架構,我這邊會將近期研發的spring cloud微服務雲架構的搭建過程和精髓記錄下來,幫助更多有興趣研發spring cloud框架的朋友,大家來一起探討spring cloud架構的搭建過程及如何運用於企業專案。
完整專案的原始碼來源 技術支援1791743380