我們使用spring cloud分布式微服務(wù)云架構(gòu)做了b2b2c的電子商務(wù)系統(tǒng),除了架構(gòu)本身自帶的系統(tǒng)服務(wù)外汹忠,我們將b2b2c的業(yè)務(wù)服務(wù)進行了細粒度拆分,做成了不同的業(yè)務(wù)微服務(wù)坐榆。
當我們的業(yè)務(wù)系統(tǒng)越來越龐大復雜的時候础废,各種配置也會隨之增多。配置文件只要一修改路星,會對commonservice-config配置中心先停止服務(wù)溯街,然后再重新啟動,最后使配置生效洋丐。
如果服務(wù)少呈昔,我們可以手動方式來啟動,但是對業(yè)務(wù)和系統(tǒng)的穩(wěn)定性肯定有一定的影響友绝。
如果是成百上千的服務(wù)都靠手動操作堤尾,我估計運維人員或技術(shù)人員會瘋掉的。
針對以上問題迁客,commonservice-config服務(wù)端和業(yè)務(wù)微服務(wù)分別做了相關(guān)的配置郭宝,服務(wù)端負責將git(svn或本地文件系統(tǒng))中存儲的配置文件進行配置化(我們使用的是本地配置方案辞槐,方便直接將配置文件更新到linux上),
業(yè)務(wù)微服務(wù)通過配置從服務(wù)端配置中心獲取相關(guān)配置粘室,如果配置文件變動了榄檬,通過刷新業(yè)務(wù)微服務(wù)的方式,將最新的配置信息獲取衔统。
spring cloud Bus通過一個輕量級消息代理連接分布式系統(tǒng)的節(jié)點鹿榜。這可以用于廣播狀態(tài)更改(如配置更改)或其他管理指令。
接下來缰冤,我們就來實施通過spring cloud Bus方案犬缨,動態(tài)刷新服務(wù)端配置,具體步驟如下:
-
業(yè)務(wù)微服務(wù)配置(以honghu-member-servcie會員服務(wù)為例):
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服務(wù)是否已經(jīng)注冊成功
4. 訪問一下profile,獲取profile對應(yīng)的配置信息(原配置):
訪問http://localhost:7071/profile ==》 訪問結(jié)果:123456
5. 修改config配置中心的配置文件迷郑,將profile=123456修改為honghu123456
再次訪問http://localhost:7071/profile ==》 訪問結(jié)果:123456
6. 使用spring cloud bus 刷新方案(使用post man測試工具進行測試)
http://localhost:7071/bus/refresh
再次訪問http://localhost:7071/profile ==》 訪問結(jié)果:honghu123456
到此枝恋,整個commonservice-config配置中心動態(tài)刷新方案整理完畢!
歡迎大家和我一起學習spring cloud構(gòu)建微服務(wù)云架構(gòu)嗡害,我這邊會將近期研發(fā)的spring cloud微服務(wù)云架構(gòu)的搭建過程和精髓記錄下來焚碌,幫助更多有興趣研發(fā)spring cloud框架的朋友,大家來一起探討spring cloud架構(gòu)的搭建過程及如何運用于企業(yè)項目霸妹。
完整項目的源碼來源 技術(shù)支持1791743380