日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

springcloud 之 配置中心服务 spring cloud config

發(fā)布時(shí)間:2023/12/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springcloud 之 配置中心服务 spring cloud config 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

????開門見山,不做過多的陳述,簡(jiǎn)單說一下配置中心的作用:在我們的實(shí)際項(xiàng)目開發(fā)中,我們一般都是一個(gè)項(xiàng)目一套配置,就像我之前的springboot項(xiàng)目,每個(gè)項(xiàng)目下都有一套resources/application.properties,里面都配置了我們需要的mysql連接、redis連接,kafka連接等,也就是說我們?nèi)绻衝個(gè)項(xiàng)目,且如果都需要使用mysql的話,那么我們就有n個(gè)重復(fù)的mysql配置,而且最致命的是如果我們的mysql地址發(fā)生了變化,那么我們就得手動(dòng)到每個(gè)項(xiàng)目下更改mysql的連接配置,改到你手軟為止;別驚訝,我之前就是這么過來的(當(dāng)時(shí)還只有七個(gè)服務(wù)),所以我毅然決然的開始了配置中心化這條道路......

? ? 這篇文章會(huì)簡(jiǎn)單的實(shí)現(xiàn)一個(gè)基于git(我用的時(shí)gitlib,公司搭建的一個(gè)git服務(wù))的配置中心化的服務(wù),滿足基本需求,后面的文章會(huì)繼續(xù)談到更深入的功能點(diǎn)。

1. 首先,打開gitlib,創(chuàng)建一個(gè)倉庫,我這里創(chuàng)建了一個(gè)名為x2-config-repo的項(xiàng)目,并且創(chuàng)建了三個(gè)配置文件,對(duì)應(yīng)我們以后的開發(fā)(dev)、測(cè)試(test)、生產(chǎn)環(huán)境(prod).


2.創(chuàng)建一個(gè)springboot項(xiàng)目(xsignal2-config),這是配置中心server端,通過server端連接gitlib讀取配置信息

依賴pom.xml

<!--eureka client--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> <version>1.4.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>

核心依賴:spring-cloud-config-server

2.打開application-dev.properties,加入以下內(nèi)容:

#端口 server.port=8765 #實(shí)例名 spring.application.name=xsignal2-config #注冊(cè)中心 eureka.server.host=10.0.2.24 eureka.server.port=8761 eureka.client.service-url.defaultZone=http://${eureka.server.host}:${eureka.server.port}/eureka/ #git # 配置git倉庫的地址 spring.cloud.config.server.git.uri=http://xxx.com.cn/zhang/x2-config-repo.git # git倉庫地址下的相對(duì)地址,可以配置多個(gè),用,分割 spring.cloud.config.server.git.search-paths=x2-config-repo # git倉庫的賬號(hào) spring.cloud.config.server.git.username= # git倉庫的密碼 spring.cloud.config.server.git.password=


3.打開啟動(dòng)類加入相關(guān)注解:@EnableConfigServer



ok,配置服務(wù)準(zhǔn)備就緒,開始測(cè)試吧;首先啟動(dòng)我們的注冊(cè)中心eureka server(在此我沿用之前的discover-server項(xiàng)目),然后啟動(dòng)配置中心;查看效果如下:


我們的配置中心服務(wù)已成功加入到注冊(cè)中心,接下來驗(yàn)證是否能獲取到gitlib中的配置信息。


看到如上信息,說明我們已經(jīng)成功訪問到gitlib中的配置信息;我們也可以直接訪問配置文件通過如下地址:


倉庫中的配置文件會(huì)被轉(zhuǎn)換成web接口,訪問可以參照以下的規(guī)則:

  • /{application}/{profile}[/{label}]
  • /{application}-{profile}.yml
  • /{label}/{application}-{profile}.yml
  • /{application}-{profile}.properties
  • /{label}/{application}-{profile}.properties
以x2config-dev.properties為例,application=x2config,profile=dev,client會(huì)根據(jù)填寫的參數(shù)來選擇讀取對(duì)應(yīng)的配置。

以上是服務(wù)端配置中心的配置,接下來我們開始客戶端的配置,客戶端怎樣獲取服務(wù)端的配置呢?

1.基于之前的demo-springboot項(xiàng)目,我們將其作為一個(gè)客戶端

打開pom.xml,加入相關(guān)依賴

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> <version>1.3.2.RELEASE</version> </dependency>

2.打開bootstrap.properties配置文件(注:以下配置一定要寫在bootstrap中,因?yàn)閎ootstrap會(huì)優(yōu)先于application.properties加載)

#client config #對(duì)應(yīng){application}部分 spring.cloud.config.name=x2config #對(duì)應(yīng){profile}部分 spring.cloud.config.profile=dev #配置中心url #spring.cloud.config.uri=http://localhost:8765/ #開啟Config服務(wù)發(fā)現(xiàn)支持 spring.cloud.config.discovery.enabled=true #配置中心服務(wù)實(shí)例 spring.cloud.config.discovery.service-id=xsignal2-config #對(duì)應(yīng)git的分支 spring.cloud.config.label=master #注冊(cè)中心 eureka.server.host=10.0.2.24 eureka.server.port=8761 eureka.client.service-url.defaultZone=http://${eureka.server.host}:${eureka.server.port}/eureka/ #開啟eureka client健康檢查 eureka.client.healthcheck=true # 續(xù)約到期時(shí)間(默認(rèn)90秒) eureka.instance.lease-expiration-duration-in-seconds=30 # 續(xù)約更新時(shí)間間隔(默認(rèn)30秒) eureka.instance.lease-renewal-interval-in-seconds=10

配置的相關(guān)說明:因?yàn)槲覀円呀?jīng)通過注冊(cè)中心注冊(cè)了實(shí)例,所以以上配置中我們開啟了config的服務(wù)發(fā)現(xiàn)支持(spring.cloud.config.discovery.enabled=true,spring.cloud.config.discovery.service-id=xsignal2-config)可以直接通過實(shí)例名稱去查找配置中心服務(wù),如果沒有開啟注冊(cè)中心(eureka server),那么也可以通過url配置(#spring.cloud.config.uri=http://localhost:8765/)配置中心地址。


2.application-dev.properties配置

#端口 server.port=8889 #實(shí)例名 spring.application.name=demo-springboot #feign read timeout(10s) hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=10000 #feign read timout disable #hystrix.command.default.execution.timeout.enabled=false

3.編寫測(cè)試類

/** * @author xiaofeng * @version V1.0 * @title: TestController.java * @package: com.example.demo.controller * @description: TODO * @date 2018/4/3 0003 下午 2:10 */ @RefreshScope @RestController @RequestMapping(value = "/test") public class TestController {@RequestMapping(value = "/info")public String info(@RequestParam(value = "msg") String msg) {return "welcome to demo-springboot: " + msg; }@Value("${kafka.broker.host}")String appName; @RequestMapping(value = "/config")public String configValue() {return appName; } }


如上,我們可以通過@Value的方式獲取配置信息(也可以通過Enviroment env; env.getpropery("xxx")的方式獲取)

4.啟動(dòng)demo-springboot,訪問/test/config 查看效果


很明顯,我們已經(jīng)拿到了gitlib中配置信息,至此,我們的基本配置已完成,自己去實(shí)踐吧,相信你會(huì)發(fā)現(xiàn)存在的其它問題,比如:實(shí)時(shí)刷新,動(dòng)態(tài)更新等!你的疑惑我們將在下一章為大家揭曉!

總結(jié)

以上是生活随笔為你收集整理的springcloud 之 配置中心服务 spring cloud config的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。