中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

spring cloud config整合gitlab如何搭建分布式的配置中心

發布時間:2022-04-21 10:43:01 來源:億速云 閱讀:303 作者:iii 欄目:大數據

本文小編為大家詳細介紹“spring cloud config整合gitlab如何搭建分布式的配置中心”,內容詳細,步驟清晰,細節處理妥當,希望這篇“spring cloud config整合gitlab如何搭建分布式的配置中心”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

前提:在gitlab中的工程下新建一個配置文件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倉庫的地址,注意,此處必須以.git結尾 
     search-paths: /config-repo # gitlab倉庫地址下的相對地址,可以配置多個,用,分割。 
     username: your username                       # gitlab倉庫的賬號 
     password: your password                       # gitlab倉庫的密碼

注意:如果配置文件放置在Git存儲庫的根目錄下,則無需使用searchPaths參數,本例中的配置文件在config-repo目錄中,因此使用searchPaths參數提示Config服務器搜索config-repo子目錄

4、啟動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端已經可以從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,結果如下:

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文件中,因為config的相關配置會先于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服務端的url 
   profile: dev           # 指定profile 
   label: master           # 指定gitlab倉庫的分支

3、驗證客戶端

在客戶端新增一個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客戶端在服務器配置改變時,也刷新注入的屬性值 
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,結果如下:

i'm the king of the world!!! 

說明客戶端已經可以從服務端獲取到值了。

三、動態刷新

無需重新啟動客戶端,即可更新Spring Cloud Config管理的配置

1、更新gitlab倉庫中configserver-dev.properties配置文件中hello對應的屬性值

2、訪問http://localhost:8888/configserver/dev/master,發現server端內容已經更新

3、對Conf客戶端發一個POST請求http://localhost:8889/refresh,返回200 OK。再次訪問http://localhost:8889/hello,可見在并未重啟客戶端服務的情況下,讀到的屬性值已經動態更新

PS:要想實現動態刷新,需要在pom文件中添加以下starter

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

讀到這里,這篇“spring cloud config整合gitlab如何搭建分布式的配置中心”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

扶绥县| 格尔木市| 永顺县| 诸城市| 靖远县| 遵义县| 乌拉特后旗| 泾阳县| 开鲁县| 南昌市| 福海县| 阳新县| 兴宁市| 宁河县| 浏阳市| 美姑县| 大埔区| 杂多县| 大同县| 遂川县| 密云县| 佛学| 西畴县| 宜兰县| 马鞍山市| 清丰县| 上栗县| 五台县| 青铜峡市| 河池市| 佳木斯市| 建平县| 丹阳市| 唐海县| 凤凰县| 兰溪市| 论坛| 建平县| 远安县| 彭水| 新干县|