真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringCloud學(xué)習(xí)系列之四-----配置中心(Config)使用詳解

前言

本篇主要介紹的是SpringCloud中的分布式配置中心(SpringCloud Config)的相關(guān)使用教程。

網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及定制網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站設(shè)計,高端網(wǎng)頁制作,對成都墻體彩繪等多個行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計,網(wǎng)站優(yōu)化推廣哪家好,專業(yè)seo優(yōu)化優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。

SpringCloud Config

Config 介紹

Spring Cloud Config項目是一個解決分布式系統(tǒng)的配置管理方案。它包含了Client和Server兩個部分,server提供配置文件的存儲、以接口的形式將配置文件的內(nèi)容提供出去,client通過接口獲取數(shù)據(jù)、并依據(jù)此數(shù)據(jù)初始化自己的應(yīng)用。

開發(fā)準(zhǔn)備

開發(fā)環(huán)境

  • JDK:1.8
  • SpringBoot:2.1.1.RELEASE
  • SpringCloud:Finchley

注:不一定非要用上述的版本,可以根據(jù)情況進行相應(yīng)的調(diào)整。需要注意的是SpringBoot2.x以后,jdk的版本必須是1.8以上!

確認(rèn)了開發(fā)環(huán)境之后,我們再來添加相關(guān)的pom依賴。


    
        org.springframework.cloud
        spring-cloud-config
    
    
        org.springframework.cloud
        spring-cloud-starter-netflix-eureka-server
    

SpringCloud Config 示例

目前SpringCloud Config的使用主要是通過Git/SVN方式做一個配置中心,然后每個服務(wù)從其中獲取自身配置所需的參數(shù)。SpringCloud Config也支持本地參數(shù)配置的獲取。如果使用本地存儲的方式,在 application.propertiesapplication.yml 文件添加 spring.profiles.active=native 配置即可,它會從項目的 resources路徑下讀取配置文件。如果是讀取指定的配置文件,那么可以使用 spring.cloud.config.server.native.searchLocations = file:D:/properties/ 來讀取。

服務(wù)端

首先是服務(wù)端這塊,首先創(chuàng)建一個注冊中心,為了進行區(qū)分,創(chuàng)建一個springcloud-config-eureka的項目。 代碼和配置和之前的基本一樣。
application.properties配置信息:

配置信息:

spring.application.name=springcloud-hystrix-eureka-server
server.port=8005
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://localhost:8005/eureka/

配置說明:

  • spring.application.name: 這個是指定服務(wù)名稱。
  • server.port:服務(wù)指定的端口。
  • eureka.client.register-with-eureka:表示是否將自己注冊到Eureka Server,默認(rèn)是true。
  • eureka.client.fetch-registry:表示是否從Eureka Server獲取注冊信息,默認(rèn)為true。
  • eureka.client.serviceUrl.defaultZone: 這個是設(shè)置與Eureka Server交互的地址,客戶端的查詢服務(wù)和注冊服務(wù)都需要依賴這個地址。

服務(wù)端這邊只需要在SpringBoot啟動類添加@EnableEurekaServer注解就可以了,該注解表示此服務(wù)是一個服務(wù)注冊中心服務(wù)。

代碼示例:


    @SpringBootApplication
    @EnableEurekaServer
    public class ConfigEurekaApplication {

        public static void main(String[] args) {
            SpringApplication.run(ConfigEurekaApplication.class, args);
             System.out.println("config 注冊中心服務(wù)啟動...");
        }
    }

創(chuàng)建好了注冊中心之后,我們再來創(chuàng)建一個配置中心,用于管理配置。
創(chuàng)建一個springcloud-config-server的項目。然后在application.properties配置文件添加如下配置:

配置信息:

 spring.application.name=springcloud-config-server
 server.port=9005
 eureka.client.serviceUrl.defaultZone=http://localhost:8005/eureka/
 spring.cloud.config.server.git.uri = https://github.com/xuwujing/springcloud-study/
 spring.cloud.config.server.git.search-paths = /springcloud-config/config-repo
 spring.cloud.config.server.git.username = 
 spring.cloud.config.server.git.password = 

配置說明:

  • spring.application.name: 這個是指定服務(wù)名稱。
  • server.port:服務(wù)指定的端口。
  • eureka.client.serviceUrl.defaultZone: 這個是設(shè)置與Eureka Server交互的地址,客戶端的查詢服務(wù)和注冊服務(wù)都需要依賴這個地址。
  • spring.cloud.config.server.git.uri: 配置的Git長褲的地址。
  • spring.cloud.config.server.git.search-paths: git倉庫地址下的相對地址 多個用逗號","分割。
  • spring.cloud.config.server.git.username:git倉庫的賬號。
  • spring.cloud.config.server.git.password:git倉庫的密碼。

注:如果想使用本地方式讀取配置信息,那么只需將spring.cloud.config.server.git的配置改成spring.profiles.active=native,然后在resources路徑下新增一個文件即可。

這里為了進行本地配置文件測試,新建一個configtest.properties配置文件,添加如下內(nèi)容:


    word=hello world

代碼這塊也很簡單,在程序主類中,額外添加@EnableConfigServer注解,該注解表示啟用config配置中心功能。代碼如下:

、、、

@EnableDiscoveryClient
@EnableConfigServer
@SpringBootApplication
public class ConfigServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
        System.out.println("配置中心服務(wù)端啟動成功!");
    }
}

、、、

完成上述代碼之后,我們的配置中心服務(wù)端已經(jīng)構(gòu)建完成了。

客戶端

我們新建一個springcloud-config-client的項目,用于做讀取配置中心的配置。pom依賴還是和配置中心一樣,不過需要新增一個配置,用于指定配置的讀取。
創(chuàng)建一個bootstrap.properties文件,并添加如下信息:

配置信息:

spring.cloud.config.name=configtest
spring.cloud.config.profile=pro
spring.cloud.config.label=master
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.serviceId=springcloud-config-server
eureka.client.serviceUrl.defaultZone=http://localhost:8005/eureka/

配置說明:

  • spring.cloud.config.name: 獲取配置文件的名稱。
  • spring.cloud.config.profile: 獲取配置的策略。
  • spring.cloud.config.label:獲取配置文件的分支,默認(rèn)是master。如果是是本地獲取的話,則無用。
  • spring.cloud.config.discovery.enabled: 開啟配置信息發(fā)現(xiàn)。
  • spring.cloud.config.discovery.serviceId: 指定配置中心的service-id,便于擴展為高可用配置集群。
  • eureka.client.serviceUrl.defaultZone: 這個是設(shè)置與Eureka Server交互的地址,客戶端的查詢服務(wù)和注冊服務(wù)都需要依賴這個地址。

:上面這些與spring-cloud相關(guān)的屬性必須配置在bootstrap.properties中,config部分內(nèi)容才能被正確加載。因為bootstrap.properties的相關(guān)配置會先于application.properties,而bootstrap.properties的加載也是先于application.properties。需要注意的是eureka.client.serviceUrl.defaultZone要配置在bootstrap.properties,不然客戶端是無法獲取配置中心參數(shù)的,會啟動失??!

application.properties配置

spring.application.name=springcloud-config-client
server.port=9006

配置說明:

  • spring.application.name: 這個是指定服務(wù)名稱。
  • server.port:服務(wù)指定的端口。

程序主類代碼,和之前的基本一致。代碼如下:

代碼示例:


    @EnableDiscoveryClient
    @SpringBootApplication
    public class ConfigClientApplication {

        public static void main(String[] args) {
            SpringApplication.run(ConfigClientApplication.class, args);
            System.out.println("配置中心客戶端啟動成功!");
        }
    }

為了方便查詢,在控制中進行參數(shù)的獲取,并返回。@Value注解是默認(rèn)是從application.properties配置文件獲取參數(shù),但是這里我們在客戶端并沒有進行配置,該配置在配置中心服務(wù)端,我們只需指定好了配置文件之后即可進行使用。

代碼示例:


    @RestController
    public class ClientController {

        @Value("${word}")
        private String word;

        @RequestMapping("/hello")
        public String index(@RequestParam String name) {
            return name+","+this.word;
        }
    }

到此,客戶端項目也就構(gòu)建完成了。

功能測試

完成如上的工程開發(fā)之后,我們來進行測試。

本地測試

首先我們把springcloud-config-server項目的application.properties配置文件添加spring.profiles.active=native配置,注釋掉spring.cloud.config.server.git相關(guān)的配置,然后在src/main/resources目錄下新建一個configtest.properties文件,然后在里面添加一個配置word=hello world。
添加完成之后,我們依次啟動springcloud-config-eureka、springcloud-config-server、springcloud-config-client這三個項目。啟動成功之前,先看來看看配置中心服務(wù)端的配置文件獲取,在瀏覽器輸入:

http://localhost:9005/configtest-1.properties

查看該文件的配置信息。

:配置文件的名稱是configtest.properties,但是如果直接該名稱的話是獲取不到的,因為在配置文件名需要通過-來進行獲取,如果配置文件名稱沒有-,那么添加了-之后,會自動進行匹配搜索。

springcloud config 的URL與配置文件的映射關(guān)系如下:

/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

上面的url會映射{application}-{profile}.properties對應(yīng)的配置文件,{label}對應(yīng)git上不同的分支,默認(rèn)為master。

界面返回:

word: hello world

然后調(diào)用客戶端的接口,查看是否能夠獲取配置信息。在瀏覽器上輸入:

http://localhost:9006//hello?name=pancm

界面返回:

pancm,hello world

示例圖:

SpringCloud學(xué)習(xí)系列之四-----配置中心(Config)使用詳解
SpringCloud學(xué)習(xí)系列之四-----配置中心(Config)使用詳解

Git測試

在完成本地測試之后,我們把這個spring.profiles.active=native配置注釋掉,解除spring.cloud.config.server.git相關(guān)的注釋(賬號和密碼要填寫真實的),然后在git倉庫上建立一個config-repo 文件夾,新建configtest-pro.properties、configtest-dev.properties兩個配置,這兩個的配置分別是word=hello world??!word=hello world!, 然后和configtest.properties配置文件一起上傳到config-repo 文件夾中。

首先在瀏覽器輸入:

http://localhost:9005/configtest-dev.properties

瀏覽器返回:

word: hello world!

然后再瀏覽器輸入:

http://localhost:9005/configtest-pro.properties

瀏覽器返回:

word: hello world!!

上傳了configtest.properties文件,但是這個文件名稱沒有-,我們想獲取其中參數(shù)的信息的話,可以在然后-隨意添加一個參數(shù),它會自動進行匹配,在瀏覽器輸入:

http://localhost:9005/configtest-1.properties

瀏覽器返回:

word: hello world

然后進行客戶端接口調(diào)用測試,在瀏覽器輸入:

http://localhost:9006/hello?name=pancm

瀏覽器返回:

pancm,Hello World!!

由于這里我配置的前綴是 pro ,所以讀取的是 configtest-pro.properties文件的數(shù)據(jù),想要獲取其他的配置,修改spring.cloud.config.profile配置即可。

示例圖:

SpringCloud學(xué)習(xí)系列之四-----配置中心(Config)使用詳解

SpringCloud學(xué)習(xí)系列之四-----配置中心(Config)使用詳解
SpringCloud學(xué)習(xí)系列之四-----配置中心(Config)使用詳解
SpringCloud學(xué)習(xí)系列之四-----配置中心(Config)使用詳解

其他

項目地址

基于SpringBoot2.x、SpringCloud的Finchley版本開發(fā)的地址:https://github.com/xuwujing/springcloud-study

基于SpringBoot1.x、SpringCloud 的Dalston版本開發(fā)的地址: https://github.com/xuwujing/springcloud-study-old

如果感覺項目不錯,希望能給個star,謝謝!

音樂推薦

原創(chuàng)不易,如果感覺不錯,希望留言推薦!您的支持是我寫作的最大動力!
版權(quán)聲明:
作者:虛無境
博客園出處:http://www.cnblogs.com/xuwujing
CSDN出處:http://blog.csdn.net/qazwsxpcm    
個人博客出處:http://www.panchengming.com


名稱欄目:SpringCloud學(xué)習(xí)系列之四-----配置中心(Config)使用詳解
文章來源:http://weahome.cn/article/jicssc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部