激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務(wù)器之家 - 編程語言 - Java教程 - 詳解使用spring cloud config來統(tǒng)一管理配置文件

詳解使用spring cloud config來統(tǒng)一管理配置文件

2021-06-22 13:13mazhen1991 Java教程

這篇文章主要介紹了詳解使用spring cloud config來統(tǒng)一管理配置文件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

當(dāng)一個系統(tǒng)中的配置文件發(fā)生改變的時候,我們需要重新啟動該服務(wù),才能使得新的配置文件生效,spring cloud config可以實(shí)現(xiàn)微服務(wù)中的所有系統(tǒng)的配置文件的統(tǒng)一管理,而且還可以實(shí)現(xiàn)當(dāng)配置文件發(fā)生變化的時候,系統(tǒng)會自動更新獲取新的配置。

其架構(gòu)原理圖大致如下:

詳解使用spring cloud config來統(tǒng)一管理配置文件

我們將配置文件放入git或者svn等服務(wù)中,通過一個config server服務(wù)來獲取git中的配置數(shù)據(jù),而我們需要使用的到配置文件的config client系統(tǒng)可以通過config server來獲取對應(yīng)的配置。

下面我們通過一個示例來演示一下config是如何被各個微服務(wù)系統(tǒng)獲取到的。

1.向git中上傳示例配置文件

?
1
2
3
4
jdbc.driverclassname=com.mysql.jdbc.driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/taotao?useunicode=true&characterencoding=utf8&autoreconnect=true&allowmultiqueries=true
jdbc.username=root
jdbc.password=root

文件名分別為:

?
1
2
3
microservice-dev.properties
microservice-production.properties
microservice-test.properties

對應(yīng)不同的三個環(huán)境。

該文件的命名規(guī)則是:{application}-{profile}.properties

2.搭建config server

2.1 添加依賴

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<parent>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-starter-parent</artifactid>
  <version>1.5.4.release</version>
</parent>
 
<!-- 導(dǎo)入spring cloud的依賴管理 -->
<dependencymanagement>
  <dependencies>
    <dependency>
      <groupid>org.springframework.cloud</groupid>
      <artifactid>spring-cloud-dependencies</artifactid>
      <version>dalston.sr3</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    <dependency>
      <groupid>org.springframework.cloud</groupid>
      <artifactid>spring-cloud-starter-eureka-server</artifactid>
      <exclusions>
        <exclusion>          
          <groupid>com.fasterxml.jackson.dataformat</groupid>
          <artifactid>jackson-dataformat-xml</artifactid>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>
</dependencymanagement>
 
<dependencies>
  <dependency>
    <groupid>org.springframework.cloud</groupid>
    <artifactid>spring-cloud-config-server</artifactid>
  </dependency>
  <!-- 使用bus總線的方式通知所有的微服務(wù)配置文件需要刷新 -->
  <dependency>
    <groupid>org.springframework.cloud</groupid>
    <artifactid>spring-cloud-starter-bus-amqp</artifactid>
  </dependency>
</dependencies>
 
<build>
  <finalname>${project.artifactid}</finalname>
  <plugins>
    <!-- 資源文件拷貝插件 -->
    <plugin>
      <groupid>org.apache.maven.plugins</groupid>
      <artifactid>maven-resources-plugin</artifactid>
      <configuration>
        <encoding>utf-8</encoding>
      </configuration>
    </plugin>
    <!-- java編譯插件 -->
    <plugin>
      <groupid>org.apache.maven.plugins</groupid>
      <artifactid>maven-compiler-plugin</artifactid>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>utf-8</encoding>
      </configuration>
    </plugin>
  </plugins>
</build>

2.2 編寫configapplication

?
1
2
3
4
5
6
7
8
9
10
@enablediscoveryclient
@enableconfigserver //開啟配置服務(wù)
@springbootapplication
public class configapplication {
 
  public static void main(string[] args) {
    springapplication.run(configapplication.class, args);
  }
 
}

2.3 編寫yml配置文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
server:
 port: 6688 #服務(wù)端口
 
spring:
 application:
  name: microservice-config-server #指定服務(wù)名
 cloud:
  config:
   server:
    git: #配置git倉庫地址
     uri: 具體的配置文件的git地址
     #username:
     #password:
 rabbitmq: #rabbitmq相關(guān)的配置
  host: 127.0.0.1
  port: 5672
  username: guest
  password: guest
 
eureka:
 client:
  registerwitheureka: true #是否將自己注冊到eureka服務(wù)中,默認(rèn)為true
  fetchregistry: true #是否從eureka中獲取注冊信息,默認(rèn)為true
  serviceurl: #eureka客戶端與eureka服務(wù)端進(jìn)行交互的地址
   defaultzone: http://cloud:cloud@127.0.0.1:6868/eureka/
 instance:
  prefer-ip-address: true #將自己的ip地址注冊到eureka服務(wù)中
  ipaddress: 127.0.0.1
management:
 security:
  enabled: false #是否開啟actuator安全認(rèn)證

這是我們啟動該服務(wù),訪問該配置文件,訪問路徑示例如下(以該配置為例): 127.0.0.1:6688/microservice-dev.properties

訪問路徑的寫法也有多種方式:

?
1
2
3
4
5
6
/{application}/{profile}/[label]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
其中{label}是指分支,默認(rèn)是master。

3. config client的搭建

3.1 添加依賴

?
1
2
3
4
5
6
7
8
9
10
11
12
<dependency>
  <groupid>org.springframework.cloud</groupid>
  <artifactid>spring-cloud-starter-config</artifactid>
</dependency>
<dependency>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-starter-actuator</artifactid>
</dependency>
<dependency>
  <groupid>org.springframework.cloud</groupid>
  <artifactid>spring-cloud-starter-bus-amqp</artifactid>
</dependency>

3.2 添加yml配置文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
eureka:
 client:
  serviceurl: #eureka客戶端與eureka服務(wù)端進(jìn)行交互的地址
   defaultzone: http://cloud:cloud@127.0.0.1:6868/eureka/
spring:
 cloud:
  config:
   name: microservice #對應(yīng)的配置服務(wù)中的應(yīng)用名稱
   profile: dev #對應(yīng)配置服務(wù)中的{profile}
   label: master #對應(yīng)的分支
   discovery:
    enabled: true #啟用發(fā)現(xiàn)服務(wù)功能
    service-id: microservice-config-server #指定服務(wù)名稱
 spring:
 application:
  name: itcasst-microservice-config-server #指定服務(wù)名
 cloud:
  config:
   server:
    git: #配置git倉庫地址
     uri: http://172.16.55.138:10080/zhangzhijun/itcast-config-server.git
     #username: zhangzhijun
     #password: 123456
 rabbitmq: #rabbitmq相關(guān)的配置
  host: 127.0.0.1
  port: 5672
  username: guest
  password: guest

注意,這里的yml配置文件是:bootstrap.yml,它和application.yml文件一樣,會被spring boot加載,但是bootstrap.yml會優(yōu)先加載。

3.3 在application.yml文件中添加配置

?
1
2
3
management:
 security:
  enabled: false #是否開啟actuator安全認(rèn)證

3.4 利用git的webhook實(shí)現(xiàn)實(shí)時更新通知

詳解使用spring cloud config來統(tǒng)一管理配置文件

詳解使用spring cloud config來統(tǒng)一管理配置文件

詳解使用spring cloud config來統(tǒng)一管理配置文件

這個時候,我么通過@value的方式,就可以獲取到對應(yīng)的配置了。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
@refreshscope
@component//加入到spring容器
public class jdbcconfigbean {
 
  @value("${jdbc.url}")
  private string url;
 
  @value("${jdbc.username}")
  private string username;
 
  @value("${jdbc.password}")
  private string password;
 
  @value("${jdbc.driverclassname}")
  private string driverclassname;
 
  public string geturl() {
    return url;
  }
 
  public void seturl(string url) {
    this.url = url;
  }
 
  public string getusername() {
    return username;
  }
 
  public void setusername(string username) {
    this.username = username;
  }
 
  public string getpassword() {
    return password;
  }
 
  public void setpassword(string password) {
    this.password = password;
  }
 
  public string getdriverclassname() {
    return driverclassname;
  }
 
  public void setdriverclassname(string driverclassname) {
    this.driverclassname = driverclassname;
  }
 
  @override
  public string tostring() {
    return "jdbcconfigbean [url=" + url + ", username=" + username
        + ", password=" + password + ", driverclassname="
        + driverclassname + "]";
  }
 
}

再次測試,我們發(fā)現(xiàn)當(dāng)我們修改了git中的配置文件的內(nèi)容之后,client系統(tǒng)中讀取到的屬性也是修改之后的了。

到此為止,其架構(gòu)變成如下:

詳解使用spring cloud config來統(tǒng)一管理配置文件

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

原文鏈接:https://blog.csdn.net/mazhen1991/article/details/78513452

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美一级片 在线播放 | 毛片在线免费视频 | 久久精品中文字幕一区 | 久草视频在线资源 | 最近日本电影hd免费观看 | 5xsq在线视频 | 久草在线看片 | 免费观看一级黄色片 | 青青草成人影视 | 韩国精品久久久 | 91短视频版高清在线观看免费 | 精品99在线视频 | 毛片在线免费观看视频 | 中文字幕在线免费 | 涩涩99 | 日本娇小videos高潮 | 精品一区二区三区电影 | 色综合一区二区 | 亚洲精品成人悠悠色影视 | 男女亲热网站 | 国产免费观看一区二区三区 | 91精品国产乱码久久久久久久久 | 日本在线观看高清完整版 | 欧美69free性videos | 成人毛片免费网站 | 国产精品一 | 免费看毛片的网站 | 成人免费网站在线观看 | 一级黄色淫片 | 欧洲黄色一级视频 | av不卡免费在线观看 | 成人福利在线 | 999久久国精品免费观看网站 | 草莓福利视频在线观看 | 色综合久久99 | 色柚视频网站ww色 | 国产高清成人久久 | 在线观看免费污视频 | 午夜小网站 | av电影免费在线看 | 毛毛片在线看 |