摘要:在使用的時候遇到一些坑,在這里記錄下,順便梳理下這個使用。使用來配合做一個配置文件管理,需要一個的服務端和一個的客戶端,服務端主要是和倉庫進行一個連接,而的客戶端是連接服務端來刷新配置服務的。刷新之后如下那個就是剛剛修改的內容
在使用Spring Config的時候遇到一些坑,在這里記錄下,順便梳理下這個使用。
Spring Cloud Config使用Spring Config來配合git做一個配置文件管理,需要一個Config的服務端和一個Config的客戶端,服務端主要是和git倉庫進行一個連接,而config的客戶端是連接服務端來刷新配置服務的。
在Spring Cloud Config里面客戶端需要使用Spring4.0出現(xiàn)的一個注解@Value配合一起使用
需要引入一下幾個文件:
org.springframework.cloud spring-cloud-config-server org.springframework.cloud spring-cloud-config-server org.springframework.boot spring-boot-starter-web
新建一個application.yml
spring: application: name: microservice-server # name可以隨便填寫,代表這個服務的ServiceId cloud: config: server: git: uri: https://gitee.com/somersames/sprincloud-config.git # git的地址 username: yourname password: yourpassword server: port: 8099 # 服務開啟的端口
新建一個啟動類:
@SpringBootApplication @EnableConfigServer public class ConfigApplication { public static void main(String[] args) { SpringApplication.run(ConfigApplication.class); } }
@EnableConfigServer代表的是將這個微服務作為Config的服務器
配置文件隨后在git服務器中新建幾個文件,并且按照peoperties的格式輸入內容,例如profile=ad如下:
microservice-foo.properties microservice-foo-dev.properties microservice-foo-test.properties
分別代表的是默認配置和開發(fā)環(huán)境以及測試環(huán)境的配置文件。
開啟服務端運行服務端,然后訪問URL,其中URL的格式為localhost:port/默認的項目名稱/分支.格式
這個URL的格式有很多種格式,具體的可以百度之后再自己嘗試
{"name":"microservice-foo","profiles":["dev.json"],"label":"master","version":"7ac2a341dfe7959b809b7d5ec70b980970208b91","state":null,"propertySources":[{"name":"https://gitee.com/somersames/sprincloud-config.git/microservice-foo.properties","source":{"profile":"default-1.0-changeewafasf"}}]}添加客戶端
客戶端不負責直接和git進行通信,而是直接和Config的服務端進行通信獲取最新的數(shù)據(jù)
新建一個工程并且添加一個配置文件bootstrap.yml,沒錯,是bootstrap.yml,然后再新建一個配置文件application.yml.
在bootstrap.yml中添加內容:
spring: application: name: microservice-foo # 這里的名稱填寫項目的名稱,也就是在之前獲取的json里面的那個name cloud: config: uri: http://localhost:8099/ # 填寫Config服務端地址 profile: dev #項目環(huán)境 label: master #項目分支
在Application.yml里面添加內容:
server: port: 8088 # 服務開啟的端口,任意即可
新建一個Controller
@RestController @RequestMapping("config") public class FeignController { @Value("${profile}") // 這里的profile不是隨便取得,這里取得是上述josn字符串里面的propertySources 下的 source 里面的那個鍵,在這個例子里面就是profile, private String profile; @RequestMapping(value = "/profile",method = RequestMethod.GET) public String hello(){ return this.profile; } }
其他無需改動,然后訪問localhost:8099/config/profile,可以看到如下結果:
刷新有時候需要比如動態(tài)刷新git的最新配置的話,需要引入一個新的包:
org.springframework.boot spring-boot-starter-actuator 1.2.7.RELEASE
然后在Controller里面添加注解@RefreshScope,但是需要注意的是高版本需要在bootstrap.yml里面添加一個配置management:security:enabled: false否則會導致修改之后請求refresh刷新不出來。
自己通過git修改那個文件之后繼續(xù)如下操作:
然后POSTMAN發(fā)出一個POST請求,
如果在高版本里面不添加那個配置會導致刷新不出來,如果自己刷新不出來,請嘗試添加那個配置,另外那個額外添加的配置需要按照格式自己調整下。刷新之后如下:
那個cvcvcv就是剛剛修改的內容
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/69191.html
摘要:集群系統(tǒng)中的單個計算機通常稱為節(jié)點,通常通過局域網(wǎng)連接,但也有其它的可能連接方式。這樣就高興了,可以專心寫自己的,前端就專門交由小周負責了。于是,小周和就變成了協(xié)作開發(fā)。都是為了項目正常運行以及迭代。 一、前言 只有光頭才能變強 認識我的朋友可能都知道我這陣子去實習啦,去的公司說是用SpringCloud(但我覺得使用的力度并不大啊~~)... 所以,這篇主要來講講SpringClou...
摘要:集群系統(tǒng)中的單個計算機通常稱為節(jié)點,通常通過局域網(wǎng)連接,但也有其它的可能連接方式。這樣就高興了,可以專心寫自己的,前端就專門交由小周負責了。于是,小周和就變成了協(xié)作開發(fā)。都是為了項目正常運行以及迭代。 一、前言 只有光頭才能變強 認識我的朋友可能都知道我這陣子去實習啦,去的公司說是用SpringCloud(但我覺得使用的力度并不大啊~~)... 所以,這篇主要來講講SpringClou...
摘要:在艙壁模式中可以隔離每個遠程資源,并分配各自的線程池,使之互不影響。 springcloud 總集:https://www.tapme.top/blog/detail/2019-02-28-11-33 本次用到全部代碼見文章最下方。 一、為什么要有客戶端彈性模式 ??所有的系統(tǒng)都會遇到故障,分布式系統(tǒng)單點故障概率更高。如何構建應用程序來應對故障,是每個軟件開發(fā)人員工作的關鍵部分。但是通...
閱讀 3322·2021-09-22 15:58
閱讀 1784·2019-08-30 14:17
閱讀 1777·2019-08-28 18:05
閱讀 1571·2019-08-26 13:33
閱讀 739·2019-08-26 12:20
閱讀 669·2019-08-26 12:18
閱讀 3260·2019-08-26 11:59
閱讀 1461·2019-08-26 10:36