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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

svn如何取消某个文件的版本管理_微服务架构如何统一管理工程配置文件

發(fā)布時間:2025/3/11 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 svn如何取消某个文件的版本管理_微服务架构如何统一管理工程配置文件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

面臨的問題

在分布式微服務(wù)架構(gòu)系統(tǒng)中,業(yè)務(wù)和系統(tǒng)功能被拆分成了幾十甚至上百個服務(wù)實例。每個服務(wù)實例就是以往單體應(yīng)用時代的一個獨(dú)立部署的工程。每個工程都需要自己獨(dú)立的啟動加載和運(yùn)行時配置文件。

在項目開發(fā)的過程中,我們不可避免的會涉及到配置文件的修改,例如調(diào)整一下數(shù)據(jù)庫的IP地址,修改某個功能的啟用開關(guān)狀態(tài)等等。如果系統(tǒng)結(jié)構(gòu)中的微服務(wù)節(jié)點(diǎn)較少,那么常規(guī)的代碼+配置的開發(fā)方式足以解決問題。

當(dāng)系統(tǒng)逐步迭代,其微服務(wù)會越來越復(fù)雜,慢慢演化成網(wǎng)狀依賴結(jié)構(gòu),這個時候常規(guī)的代碼+配置的開發(fā)方式就并不合適了,因為還要考慮整體系統(tǒng)的擴(kuò)展性、伸縮性和耦合性等。這些問題中,配置的管理也是非常麻煩的。

解決方案

工程化帶來的問題需要用工程化的方案來解決。為了方便的解決配置復(fù)雜繁瑣的問題,我們在微服務(wù)架構(gòu)系統(tǒng)中引入配置中心(Spring Cloud Config)。通過它來統(tǒng)一管理微服務(wù)架構(gòu)系統(tǒng)中的配置文件內(nèi)容修改與分發(fā),配置自動同步的問題,為項目的部署與運(yùn)維提供便利。

Spring Cloud Config采用集中式管理每個微服務(wù)的配置信息,并使用GIT等版本倉庫統(tǒng)一存儲配置內(nèi)容,實現(xiàn)版本化管理控制。微服務(wù)與配置中心使用REST方式交互來實現(xiàn)可擴(kuò)展的配置服務(wù)。

Spring Cloud Config配置中心解決了微服務(wù)系統(tǒng)的配置中心化、配置版本控制、平臺獨(dú)立、語言獨(dú)立等問題,其特性如下:

  • 提供服務(wù)端和客戶端支持(Spring Cloud Config Server和Spring Cloud Config Client);
  • 集中式管理分布式環(huán)境中的配置信息;
  • 基于spring環(huán)境提供配置管理,與Spring系列框架無縫結(jié)合;
  • 可用于任何語言開發(fā)環(huán)境;
  • 默認(rèn)基于GIT倉庫實現(xiàn)版本控制;

如何做到

配置中心(Config Server)本身作為一個微服務(wù)注冊到服務(wù)注冊中心中(通??梢允荅ureka,Consul,Dubbo等提供的注冊中心服務(wù)),配置中心會根據(jù)spring.cloud.config.server.git.uri來找到配置數(shù)據(jù)(它可以是git存儲庫的位置,也可以是本地文件),配置了正確的uri之后,Config Server就可以從遠(yuǎn)程Git服務(wù)拉取資源配置。

在項目中,基本上所有的基礎(chǔ)微服務(wù)都是Config Client,它們都通過Config Server做外部配置集中管理和動態(tài)環(huán)境切換。每個Client會在啟動時通過Server來拉取相應(yīng)的配置資源信息,同時還會通過消息總線(Spring Cloud Bus),以發(fā)布-訂閱的方法監(jiān)聽在運(yùn)行時由Server端動態(tài)發(fā)布的配置變更信息。

當(dāng)我們有配置資源的變更需要時,通過GIT或SVN,將配置資源信息提交到資源倉庫中。提交后觸發(fā)對應(yīng)的Hook調(diào)用Server來拉取最新的資源。如此便實現(xiàn)了:資源 -> GIT/SVN -> 配置中心Config Server -> 消息總線Bus -> Config Client 的整個鏈條動態(tài)變更。

如何使用

基于spring cloud 2.x版本Spring Cloud Config主要為系統(tǒng)中的服務(wù)實例提供外部配置,這些配置通常是可變的,默認(rèn)是使用git存放配置信息。Spring Cloud Config分為服務(wù)端和客戶端兩種角色,服務(wù)端用于統(tǒng)一管理配置中心并為客戶端提供配置信息,客戶端用于指定配置中心并在服務(wù)啟動時向配置中心拉取資源初始化本地服務(wù),客戶端的配置通常是不變的。這樣就能做到配置與交付分離,當(dāng)項目部署到不同環(huán)境時,不需要去修改客戶端的配置文件,只需要指定其運(yùn)行配置中心中的哪種環(huán)境。

Spring Cloud Config的服務(wù)端也是一個服務(wù)實例,需要導(dǎo)入服務(wù)端依賴。

<!--Spring Cloud Config 服務(wù)端依賴-->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-config-server</artifactId>

</dependency>

特別強(qiáng)調(diào)的是,如果使用svn進(jìn)行代碼管理,還需要導(dǎo)入指定svn的依賴,如果使用git則不用。

<!-- svn依賴 -->

<dependency>

<groupId>org.tmatesoft.svnkit</groupId>

<artifactId>svnkit</artifactId>

</dependency>

在服務(wù)端的配置文件中,需要指定配置文件的存放地址,如果使用svn,需要指定spring.profiles.active: subversion,如果不指定項目啟動則會報錯。

要想實現(xiàn)服務(wù)端的高可用,可以將服務(wù)端注冊到服務(wù)中心,當(dāng)客戶端指定配置中心時從服務(wù)中心獲取即可。

服務(wù)端的搭建已經(jīng)介紹完,下面是客戶端是如何與服務(wù)端建立關(guān)系的。

在客戶端中也需要導(dǎo)入指定依賴

<!-- Spring Cloud Config 客戶端依賴 -->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-config</artifactId>

</dependency>

注意,客戶端的配置文件使用bootstrap.yml,其加載優(yōu)先級高于application,yml,所以項目啟動時會預(yù)先加載bootstrap.yml中的內(nèi)容,并且這些內(nèi)容通常是不可變的,比如指定配置中心,監(jiān)控配置,快速失敗響應(yīng)等配置可以放在bootstrap.yml文件中。

到此,客戶端已經(jīng)能夠通過服務(wù)端去加載配置文件,但是大家更關(guān)心的是,如果配置文件修改了,怎么及時的獲取最新的配置信息,畢竟每次如果都需要重啟的話成本太大,接下來我們介紹Spring Cloud Config如何實現(xiàn)配置文件的自動刷新機(jī)制。

修改客戶端pom.xml文件,添加如下依賴

<!--Spring Boot Actuator 監(jiān)控-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

<!--spring-cloud-bus 消息總線-->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-bus-amqp</artifactId>

</dependency>

在bootstrap.yml中添加actuator 監(jiān)控配置:

啟用監(jiān)控management.endpoints.enabled-by-default=true

暴露刷新接口

management.endpoints.web.exposure.include='*'(用*可以包含全部端點(diǎn))

在bootstrap.yml配置rabbitmq的地址以及用戶密碼:

spring.rabbitmq.host=xxx

spring.rabbitmq.port=xxx

spring.rabbitmq.username=xxx

spring.rabbitmq.password=xxx

除了以上的修改,注意還要在需要實現(xiàn)自動刷新的類上添加@RefreshScope注解。

接著解釋一下為什么要做這樣的修改,這些新加的配置是如何相互合作實現(xiàn)動態(tài)刷新的,首先actuator是用于感知及監(jiān)測服務(wù)器端的變化,在不啟用消息總線之前其與@RefreshScope結(jié)合能夠?qū)崿F(xiàn)單個端口的刷新,即調(diào)用/refresh接口實現(xiàn),這種屬于手動刷新。顯然這種刷新方式并不是最優(yōu)的,分布式系統(tǒng)中實例那么多,我們不能每一個服務(wù)實例都調(diào)用一遍接口,我們希望達(dá)到的效果是調(diào)用一次即可所有實例都生效,所以引入消息總線spring cloud bus,其實本質(zhì)是利用了MQ的廣播機(jī)制在分布式的系統(tǒng)中傳播消息,當(dāng)有一個客戶端觸發(fā)了配置更新事件(注意這時調(diào)用/bus-refresh接口),即會向總線傳達(dá)這個消息,總線接到消息并通知給其它客戶端,其它客戶端接收到通知,請求Server端獲取最新配置,至此所有客戶端都得到最新配置。

到此為止,配置中心的動態(tài)刷新機(jī)制還差一步,就是上述我們需要手動去觸發(fā)一個客戶端調(diào)用/bus-refresh接口,這個動作可以使用我們的代碼版本管理系統(tǒng)來實現(xiàn),當(dāng)配置文件有更新時自動觸發(fā)接口,可以與github的webhook進(jìn)行配合,svn也有類似的hook機(jī)制。

總結(jié)

關(guān)于Spring Cloud Config的使用就為大家介紹到這里,其實Spring Cloud Config還能實現(xiàn)的功能有很多,主要看系統(tǒng)自身需求進(jìn)行配置,這里我們?yōu)榇蠹医榻B的是服務(wù)搭建及配置資源的動態(tài)刷新,這也是運(yùn)用Spring Cloud Config最核心要解決的問題,想了解關(guān)于Spring Cloud Config的更多內(nèi)容大家可以去網(wǎng)上查找資源,但是要注意的是目前網(wǎng)上的許多教程都是spring cloud 1.5.x版本的,使用spring cloud 2.x需要注意版本升級帶來的改動。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的svn如何取消某个文件的版本管理_微服务架构如何统一管理工程配置文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产欧美一区二区三区沐欲 | 免费av动漫 | 国产激情无套内精对白视频 | 蜜桃av乱码一区二区三区 | 久久久久久久亚洲 | 亚洲va久久久噜噜噜无码久久 | 国产精品mm| 99免费精品 | 狠狠综合久久av一区二区 | 日本婷婷| 日韩人妻一区二区三区 | 九色蝌蚪porny | 日韩中文字幕二区 | 欧美freesex黑人又粗又大 | 亚洲欧美一区二区三区四区 | 一级大片黄色 | 亚洲午夜久久久久久久久红桃 | 少妇被按摩师摸高潮了 | 日本三级一区 | 亚洲人成无码www久久久 | 亚洲欧美日韩国产一区 | 久久久国产高清 | 天天综合永久入口 | 亚洲欧美黄色片 | 日本xxxx裸体xxxx出水 | 精品一区91| 久久伊人热| 欧美视频91| 中国美女洗澡免费看网站 | 俄罗斯美女一级爱片 | 中文字幕丝袜诱惑 | 久久综合色综合 | 亚洲三级免费观看 | 国产国语videosex另类 | 日日干视频| www.com黄色片| 亚洲视频一区二区三区在线观看 | 国产精品日韩欧美大师 | 麻豆精品久久久久久久99蜜桃 | 欧美熟妇另类久久久久久不卡 | 色男天堂 | 男女草逼网站 | 午夜aa| 久久久午夜精品福利内容 | 中文字幕在线观看欧美 | a v视频在线观看 | 欧美午夜视频 | 四虎精品一区二区 | 草草影院国产 | 德国艳星videos极品hd | 欧美性猛交xxxx乱大交蜜桃 | 亚洲久久在线观看 | 国产一二区在线观看 | 欧美性天堂 | 成人午夜视频免费观看 | 美女在线国产 | 浪漫樱花在线观看高清动漫 | 久久久久久久久免费看无码 | 天天碰天天碰 | 全黄毛片| 国产成人无码aa精品一区 | 天天久久综合 | 在线成人亚洲 | 国产区一二三 | 少妇高潮久久久久久潘金莲 | 久久亚洲成人 | 色妞在线 | 精品国语对白 | 在线看片国产 | 视频精品一区二区 | 欧美11一13sex性hd | 天天色综合av | 少妇激情一区二区三区视频 | 禁网站在线观看免费视频 | 欧美激情专区 | 粉色视频网站 | 片集网| 国产影视一区二区三区 | 五月婷激情 | 50一60岁老妇女毛片 | 欧美丰满艳妇bbwbbw | 日本久久网 | 久久精品无码一区二区三区 | 亚洲成人精 | 一本一道久久 | 性视频黄色 | 国产成人精品一区二区三区四区 | 男生女生搞黄色 | 国产在线看 | 蜜桃9999| 寡妇高潮一级视频免费看 | 成人播放器 | 免费h片在线观看 | 国产激情视频一区二区 | 日韩视频网 | 日本午夜视频 | 97狠狠操| 热久久免费 | 日韩高清一二三区 |