国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

spring cloud config將配置存儲(chǔ)在數(shù)據(jù)庫(kù)中

RobinQu / 3488人閱讀

摘要:工程描述端口,從數(shù)據(jù)庫(kù)中讀取配置端口,從讀取配置搭建工程創(chuàng)建工程,在工程的文件引入的起步依賴,的連接器,的起步依賴,代碼如下在工程的配置文件下做以下的配置其中,為讀取的配置文件名,從數(shù)據(jù)庫(kù)中讀取,必須為。

轉(zhuǎn)載請(qǐng)標(biāo)明出處: 
https://blog.csdn.net/forezp/...
本文出自方志朋的博客

Spring Cloud Config Server最常見是將配置文件放在本地或者遠(yuǎn)程Git倉(cāng)庫(kù),放在本地是將將所有的配置文件統(tǒng)一寫在Config Server工程目錄下,如果需要修改配置,需要重啟config server;放在Git倉(cāng)庫(kù),是將配置統(tǒng)一放在Git倉(cāng)庫(kù),可以利用Git倉(cāng)庫(kù)的版本控制。本文將介紹使用另外一種方式存放配置信息,即將配置存放在Mysql中。

整個(gè)流程:Config Sever暴露Http API接口,Config Client 通過(guò)調(diào)用Config Sever的Http API接口來(lái)讀取配置Config Server的配置信息,Config Server從數(shù)據(jù)中讀取具體的應(yīng)用的配置。流程圖如下:

案例實(shí)戰(zhàn)

在本案例中需要由2個(gè)工程,分為config-server和config-client,其中config-server工程需要連接Mysql數(shù)據(jù)庫(kù),讀取配置;config-client則在啟動(dòng)的時(shí)候從config-server工程讀取。本案例Spring Cloud版本為Greenwich.RELEASE,Spring Boot版本為2.1.0.RELEASE。

工程 描述
config-server 端口8769,從數(shù)據(jù)庫(kù)中讀取配置
config-client 端口8083,從config-server讀取配置
搭建config-server工程

創(chuàng)建工程config-server,在工程的pom文件引入config-server的起步依賴,mysql的連接器,jdbc的起步依賴,代碼如下:


    org.springframework.cloud
    spring-cloud-config-server


    mysql
    mysql-connector-java


    org.springframework.boot
    spring-boot-starter-jdbc

在工程的配置文件application.yml下做以下的配置:

spring:
  profiles:
     active: jdbc
  application:
     name: config-jdbc-server
  datasource:
     url: jdbc:mysql://127.0.0.1:3306/config-jdbc?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&serverTimezone=GMT%2B8
     username: root
     password: 123456
     driver-class-name: com.mysql.jdbc.Driver
  cloud:
     config:
       label: master
       server:
         jdbc: true
server:
  port: 8769
spring.cloud.config.server.jdbc.sql: SELECT key1, value1 from config_properties where APPLICATION=? and PROFILE=? and LABEL=?

其中,spring.profiles.active為spring讀取的配置文件名,從數(shù)據(jù)庫(kù)中讀取,必須為jdbc。spring.datasource配置了數(shù)據(jù)庫(kù)相關(guān)的信息,spring.cloud.config.label讀取的配置的分支,這個(gè)需要在數(shù)據(jù)庫(kù)中數(shù)據(jù)對(duì)應(yīng)。spring.cloud.config.server.jdbc.sql為查詢數(shù)據(jù)庫(kù)的sql語(yǔ)句,該語(yǔ)句的字段必須與數(shù)據(jù)庫(kù)的表字段一致。

在程序的啟動(dòng)文件ConfigServerApplication加上@EnableConfigServer注解,開啟ConfigServer的功能,代碼如下:

@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}

初始化數(shù)據(jù)庫(kù)

由于Config-server需要從數(shù)據(jù)庫(kù)中讀取,所以讀者需要先安裝MySQL數(shù)據(jù)庫(kù),安裝成功后,創(chuàng)建config-jdbc數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)編碼為utf-8,然后在config-jdbc數(shù)據(jù)庫(kù)下,執(zhí)行以下的數(shù)據(jù)庫(kù)腳本:

CREATE TABLE `config_properties` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `key1` varchar(50) COLLATE utf8_bin NOT NULL,
  `value1` varchar(500) COLLATE utf8_bin DEFAULT NULL,
  `application` varchar(50) COLLATE utf8_bin NOT NULL,
  `profile` varchar(50) COLLATE utf8_bin NOT NULL,
  `label` varchar(50) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_bin

其中key1字段為配置的key,value1字段為配置的值,application字段對(duì)應(yīng)于應(yīng)用名,profile對(duì)應(yīng)于環(huán)境,label對(duì)應(yīng)于讀取的分支,一般為master。

插入數(shù)據(jù)config-client 的2條數(shù)據(jù),包括server.port和foo兩個(gè)配置,具體數(shù)據(jù)庫(kù)腳本如下:

insert into `config_properties` (`id`, `key1`, `value1`, `application`, `profile`, `label`) values("1","server.port","8083","config-client","dev","master");
insert into `config_properties` (`id`, `key1`, `value1`, `application`, `profile`, `label`) values("2","foo","bar-jdbc","config-client","dev","master");
搭建config-client

在 config-client工程的pom文件,引入web和config的起步依賴,代碼如下:


    org.springframework.boot
    spring-boot-starter-web



    org.springframework.cloud
    spring-cloud-starter-config

在程序的啟動(dòng)配置文件 bootstrap.yml做程序的相關(guān)配置,一定要是bootstrap.yml,不可以是application.yml,bootstrap.yml的讀取優(yōu)先級(jí)更高,配置如下:

spring:
  application:
    name: config-client
  cloud:
    config:
      uri: http://localhost:8769
      fail-fast: true
  profiles:
    active: dev

其中spring.cloud.config.uri配置的config-server的地址,spring.cloud.config.fail-fast配置的是讀取配置失敗后,執(zhí)行快速失敗。spring.profiles.active配置的是spring讀取配置文件的環(huán)境。

在程序的啟動(dòng)文件ConfigClientApplication,寫一個(gè)RestAPI,讀取配置文件的foo配置,返回給瀏覽器,代碼如下:

@SpringBootApplication
@RestController
public class ConfigClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigClientApplication.class, args);
    }

    @Value("${foo}")
    String foo;
    @RequestMapping(value = "/foo")
    public String hi(){
        return foo;
    }
}

依次啟動(dòng)2個(gè)工程,其中config-client的啟動(dòng)端口為8083,這個(gè)是在數(shù)據(jù)庫(kù)中的,可見config-client從 config-server中讀取了配置。在瀏覽器上訪問(wèn)http://localhost:8083/foo,瀏覽器顯示bar-jdbc,這個(gè)是在數(shù)據(jù)庫(kù)中的,可見config-client從 config-server中讀取了配置。

參考資料

https://cloud.spring.io/sprin...

源碼下載

https://github.com/forezp/Spr...


掃一掃,支持下作者吧

(轉(zhuǎn)載本站文章請(qǐng)注明作者和出處 方志朋的博客

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/73362.html

相關(guān)文章

  • Spring Cloud 參考文檔(Spring Cloud Config Server)

    摘要:,這是標(biāo)記配置文件集版本化的服務(wù)器端特性。要配置對(duì)稱密鑰,需要將設(shè)置為秘密字符串或使用環(huán)境變量將其排除在純文本配置文件之外。 Spring Cloud Config Server Spring Cloud Config Server為外部配置提供基于HTTP資源的API(名稱—值對(duì)或等效的YAML內(nèi)容),通過(guò)使用@EnableConfigServer注解,服務(wù)器可嵌入Spring Bo...

    harryhappy 評(píng)論0 收藏0
  • Spring Cloud 參考文檔(Spring Cloud Config快速入門)

    摘要:快速入門這個(gè)快速入門使用的服務(wù)器和客戶端。屬性在端點(diǎn)中顯示為高優(yōu)先級(jí)屬性源,如以下示例所示。名為的屬性源包含值為且具有最高優(yōu)先級(jí)的屬性。屬性源名稱中的是存儲(chǔ)庫(kù),而不是配置服務(wù)器。 Spring Cloud Config快速入門 這個(gè)快速入門使用Spring Cloud Config Server的服務(wù)器和客戶端。 首先,啟動(dòng)服務(wù)器,如下所示: $ cd spring-cloud-con...

    gekylin 評(píng)論0 收藏0
  • Spring Cloud實(shí)戰(zhàn)(一)-Spring Cloud Config Server

    摘要:概要什么是創(chuàng)建并運(yùn)行一個(gè)建立一個(gè)創(chuàng)建并運(yùn)行一個(gè)是什么什么是配置信息一個(gè)中不只是代碼還需要連接資源和其它應(yīng)用經(jīng)常有很多需要外部設(shè)置的項(xiàng)去調(diào)整行為如切換不同的數(shù)據(jù)庫(kù)國(guó)際化等應(yīng)用中的會(huì)經(jīng)常見到的等就是配置信息常見的實(shí)現(xiàn)信息配置的方法硬編碼缺點(diǎn)需要 概要 什么是Spring Cloud Config? 創(chuàng)建并運(yùn)行一個(gè)Spring Cloud Config Server 建立一個(gè)Reposit...

    Dionysus_go 評(píng)論0 收藏0
  • Spring Cloud 參考文檔(嵌入Config Server)

    摘要:在這種情況下,名為的可選屬性非常有用,它是一個(gè)標(biāo)志,指示服務(wù)器是否應(yīng)從其自己的遠(yuǎn)程存儲(chǔ)庫(kù)配置自身,默認(rèn)情況下,該標(biāo)志處于關(guān)閉狀態(tài),因?yàn)樗赡軙?huì)延遲啟動(dòng)。 嵌入Config Server Config Server作為獨(dú)立應(yīng)用程序運(yùn)行最佳,但是,如果需要,你可以將其嵌入另一個(gè)應(yīng)用程序中,為此,請(qǐng)使用@EnableConfigServer注解。在這種情況下,名為spring.cloud.c...

    tainzhi 評(píng)論0 收藏0
  • Spring Cloud Config 學(xué)習(xí)(一)

    摘要:默認(rèn)使用存儲(chǔ)配置內(nèi)容也可以使用本地文件系統(tǒng)或存儲(chǔ)配置。會(huì)在微服務(wù)啟動(dòng)時(shí),請(qǐng)求以獲取所需要的配置屬性,并且緩存在本地以提高性能。 簡(jiǎn)介 對(duì)于傳統(tǒng)的單體應(yīng)用,通常是使用配置文件來(lái)管理所有的配置,但是在微服務(wù)架構(gòu)中,會(huì)存在很多的微服務(wù),如果每一個(gè)微服務(wù)都維護(hù)自己的配置,顯然是非常的麻煩且不靈活,維護(hù)成本會(huì)非常高 使用Spring Cloud Config可以實(shí)現(xiàn)一下功能 集中管理配置 不同...

    wthee 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<