最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2018年01月19日 13:45:01   作者:牛奮lch  
這篇文章主要介紹了詳解spring cloud config整合gitlab搭建分布式的配置中心,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在前面的博客中,我們都是將配置文件放在各自的服務(wù)中,但是這樣做有一個缺點,一旦配置修改了,那么我們就必須停機(jī),然后修改配置文件后再進(jìn)行上線,服務(wù)少的話,這樣做還無可厚非,但是如果是成百上千的服務(wù)了,這個時候,就需要用到分布式的配置管理了。而spring cloud config正是用來解決這個問題而生的。下面就結(jié)合gitlab來實現(xiàn)分布式配置中心的搭建。spring cloud config配置中心由server端和client端組成,

前提:在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結(jié)尾 
     search-paths: /config-repo # gitlab倉庫地址下的相對地址,可以配置多個,用,分割。 
     username: your username                       # gitlab倉庫的賬號 
     password: your password                       # gitlab倉庫的密碼 

注意:如果配置文件放置在Git存儲庫的根目錄下,則無需使用searchPaths參數(shù),本例中的配置文件在config-repo目錄中,因此使用searchPaths參數(shù)提示Config服務(wù)器搜索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端已經(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文件中,因為config的相關(guān)配置會先于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倉庫的分支 

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客戶端在服務(wù)器配置改變時,也刷新注入的屬性值 
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ù)端獲取到值了。

三、動態(tài)刷新

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

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

2、訪問http://localhost:8888/configserver/dev/master,發(fā)現(xiàn)server端內(nèi)容已經(jīng)更新

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

PS:要想實現(xiàn)動態(tài)刷新,需要在pom文件中添加以下starter

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Security使用權(quán)限注解實現(xiàn)精確控制

    Spring Security使用權(quán)限注解實現(xiàn)精確控制

    在現(xiàn)代的應(yīng)用系統(tǒng)中,權(quán)限管理是確保系統(tǒng)安全性的重要環(huán)節(jié),Spring Security作為Java世界最為普及的安全框架,提供了強(qiáng)大而靈活的權(quán)限控制功能,這篇文章將深入探討Spring Security使用權(quán)限注解實現(xiàn)精確控制,需要的朋友可以參考下
    2024-12-12
  • Spring Cloud學(xué)習(xí)教程之DiscoveryClient的深入探究

    Spring Cloud學(xué)習(xí)教程之DiscoveryClient的深入探究

    這篇文章主要給大家介紹了關(guān)于Spring Cloud學(xué)習(xí)教程之DiscoveryClient的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • Java遍歷起止日期中間的所有日期操作

    Java遍歷起止日期中間的所有日期操作

    這篇文章主要介紹了Java遍歷起止日期中間的所有日期操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • SpringBoot多環(huán)境配置方式的新手教程

    SpringBoot多環(huán)境配置方式的新手教程

    我們平時做項目的時候,一般都會分幾套環(huán)境,每一套環(huán)境的配置都是不一樣的,所以這篇文章就來為大家詳細(xì)介紹一下SpringBoot多環(huán)境配置方式,希望對大家有所幫助
    2023-11-11
  • Java秒殺系統(tǒng):web層詳解

    Java秒殺系統(tǒng):web層詳解

    本文主要介紹了如何設(shè)計一個秒殺系統(tǒng)的web層相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧,希望能夠給你帶來幫助
    2021-10-10
  • Java 常見異常(Runtime Exception )詳細(xì)介紹并總結(jié)

    Java 常見異常(Runtime Exception )詳細(xì)介紹并總結(jié)

    這篇文章主要介紹了Java 常見異常(Runtime Exception )詳細(xì)介紹并相關(guān)資料,大家在開發(fā)Java 應(yīng)用軟件的時候經(jīng)常會遇到各種異常這里幫大家整理了一部分,并解釋如何解決,需要的朋友可以參考下
    2016-10-10
  • Flink入門級應(yīng)用域名處理示例

    Flink入門級應(yīng)用域名處理示例

    這篇文章主要介紹了一個比較簡單的入門級Flink應(yīng)用,代碼很容易寫,主要用到的算子有FlatMap、KeyBy、Reduce,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • Java中的IO流原理和流的分類詳解

    Java中的IO流原理和流的分類詳解

    這篇文章主要介紹了Java中的IO流原理和流的分類詳解,Java?io流是Java編程語言中用于輸入和輸出操作的一種機(jī)制。它提供了一組類和接口,用于處理不同類型的數(shù)據(jù)流,包括文件、網(wǎng)絡(luò)連接、內(nèi)存等,需要的朋友可以參考下
    2023-10-10
  • Java Vector實現(xiàn)班級信息管理系統(tǒng)

    Java Vector實現(xiàn)班級信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java Vector實現(xiàn)班級信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java實現(xiàn)簡單的分頁功能

    Java實現(xiàn)簡單的分頁功能

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)簡單的分頁功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評論

云霄县| 临西县| 江达县| 怀宁县| 河曲县| 邹城市| 色达县| 墨竹工卡县| 固安县| 海城市| 通辽市| 翼城县| 邯郸县| 天全县| 凤山县| 自贡市| 凤台县| 老河口市| 漯河市| 上高县| 东阳市| 齐齐哈尔市| 晋江市| 乐亭县| 琼海市| 南和县| 随州市| 无锡市| 昌吉市| 商城县| 安新县| 佳木斯市| 城固县| 肃宁县| 安福县| 中西区| 渝中区| 龙井市| 惠来县| 灵武市| 烟台市|