您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“spring cloud config整合gitlab怎么搭建分布式的配置中心”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“spring cloud config整合gitlab怎么搭建分布式的配置中心”這篇文章吧。
前提:在gitlab中的工程下新建一個(gè)配置文件configserver-dev.properties
一、配置Server
1、添加依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>
2、在Application主類開啟支持
@EnableConfigServer
3、配置application.yml文件
server: port: 8888 spring: application: name: config cloud: config: server: git: uri: https://gitlab.xxx.com/xxxxx/xxxxx.git # 配置gitlab倉(cāng)庫(kù)的地址,注意,此處必須以.git結(jié)尾 search-paths: /config-repo # gitlab倉(cāng)庫(kù)地址下的相對(duì)地址,可以配置多個(gè),用,分割。 username: your username # gitlab倉(cāng)庫(kù)的賬號(hào) password: your password # gitlab倉(cāng)庫(kù)的密碼
注意:如果配置文件放置在Git存儲(chǔ)庫(kù)的根目錄下,則無需使用searchPaths參數(shù),本例中的配置文件在config-repo目錄中,因此使用searchPaths參數(shù)提示Config服務(wù)器搜索config-repo子目錄
4、啟動(dòng)server,并在瀏覽器輸入http://localhost:8888/configserver/dev/master
{ "name": "configserver", "profiles": [ "dev" ], "label": "master", "version": "073cda9ce85a3eed00e406f4ebcc4651ee4d9b19", "state": null, "propertySources": [ { "name": "https://gitlab.xxx.com/xxxxx/xxxxx/project/config-repo/configserver.properties", "source": { "name": "chhliuxyh", "hello": "i'm the king of the world!!!", "profile": "profile-default" } } ] }
可以看到server端已經(jīng)可以從gitlab上讀取到配置文件了。可以通過如下表單中的方式訪問gitlab上的資源
/{application}/{profile}[/{label}] /{application}-{profile}.yml /{label}/{application}-{profile}.yml /{application}-{profile}.properties /{label}/{application}-{profile}.properties
例如在瀏覽器中輸入:http://localhost:8888/configserver-dev.yml,結(jié)果如下:
hello: i'm the king of the world!!! name: chhliuxyh profile: profile-default
二、配置客戶端
1、添加pom依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
2、配置bootstrap.yml文件
注意:此處的配置文件需要放在bootstrap.properties或者是bootstrap.yml文件中,因?yàn)閏onfig的相關(guān)配置會(huì)先于application.properties,而bootstrap.properties的加載也是先于application.properties
server: port: 8889 spring: application: name: configserver # 必須與配置文件的前綴一致,例如此處我們的配置文件名是configserver-dev.properties,則此處需配置成configserver cloud: config: uri: http://localhost:8888/ //配置spring cloud config服務(wù)端的url profile: dev # 指定profile label: master # 指定gitlab倉(cāng)庫(kù)的分支
3、驗(yàn)證客戶端
在客戶端新增一個(gè)Controller
package com.chhliu.springcloud.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController @RefreshScope //注解@RefreshScope指示Config客戶端在服務(wù)器配置改變時(shí),也刷新注入的屬性值 public class SpringcloudConfigClientApplication { public static void main(String[] args) { SpringApplication.run(SpringcloudConfigClientApplication.class, args); } @Value("${hello}") // 讀取gitlab配置文件中的屬性,如果我們讀取到了值,說明客戶端是OK的 private String profile; @GetMapping("/hello") public String hello() { return this.profile; } }
在瀏覽器中訪問:http://localhost:8889/hello,結(jié)果如下:
i'm the king of the world!!!
說明客戶端已經(jīng)可以從服務(wù)端獲取到值了。
三、動(dòng)態(tài)刷新
無需重新啟動(dòng)客戶端,即可更新Spring Cloud Config管理的配置
1、更新gitlab倉(cāng)庫(kù)中configserver-dev.properties配置文件中hello對(duì)應(yīng)的屬性值
2、訪問http://localhost:8888/configserver/dev/master,發(fā)現(xiàn)server端內(nèi)容已經(jīng)更新
3、對(duì)Conf客戶端發(fā)一個(gè)POST請(qǐng)求http://localhost:8889/refresh,返回200 OK。再次訪問http://localhost:8889/hello,可見在并未重啟客戶端服務(wù)的情況下,讀到的屬性值已經(jīng)動(dòng)態(tài)更新
PS:要想實(shí)現(xiàn)動(dòng)態(tài)刷新,需要在pom文件中添加以下starter
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
以上是“spring cloud config整合gitlab怎么搭建分布式的配置中心”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。