SpringCloudconfigservice+EventBus+SVN實(shí)現(xiàn)自動更新配置_第1頁
SpringCloudconfigservice+EventBus+SVN實(shí)現(xiàn)自動更新配置_第2頁
SpringCloudconfigservice+EventBus+SVN實(shí)現(xiàn)自動更新配置_第3頁
SpringCloudconfigservice+EventBus+SVN實(shí)現(xiàn)自動更新配置_第4頁
SpringCloudconfigservice+EventBus+SVN實(shí)現(xiàn)自動更新配置_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1.倉1J建 config service 月艮務(wù)引入Maven包:<dependency><groupld>org.springframework.cloud</groupld><artifactld>spring-cloud-config-server</artifactld></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-start

2、er-bus-amqp</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>perties#刷新時,關(guān)閉安全驗(yàn)證management.security.enabled=false#Rabbitmqspring.rabbitmq.host=10.

3、10.8.122spring.rabbitmq.port=5672spring.rabbitmq.username=hjyspring.rabbitmq.password=hjy application.ymlserver:port: 7001spring:application:name: config-servercloud:config:enabled: trueserver:svn:uri: 39/svn/username: gongzhongpassword: gongzhongsearchPaths: springcloud#git:# uri: de

4、fault-label: configprofiles:active: subversion至此,config service服務(wù)搭建完成。2.給SVN服務(wù)器增加hook登錄39服務(wù)器,進(jìn)入 svn的倉庫目錄下的hooks目錄:/usr/svnrepos/hnapay2/hooks從 post-commit.tmpl拷貝份 post-commit 文件:cp post-commit.tmpl post-commit修改post-commit 文件內(nèi)容為:#!/bin/shcurl -X POST 52:7001/bus/refresh其中:10.

5、10.8.252:7001 為 config-server 的請求 IP 及端口修改post-commit文件為可執(zhí)行文件:chmod +x post-commit到此就實(shí)現(xiàn)了配置中心的配置修改后,其他所有服務(wù)均自動重新獲取配置。注意:只有引入了 spring-cloud-starter-bus-amqp模塊的服務(wù)才會重新獲取配置擴(kuò)展:為指定項目進(jìn)行刷新原理:根據(jù)SVN的hooks獲取到被update 的配置文件目錄,再通過/bus/refresh?destination=customers:*旨令進(jìn)行刷新要求:SVN的目錄按serviceId 命名,當(dāng)然也可以在 svn的hooks腳本中進(jìn)行

6、目錄與 server 對應(yīng)。如下圖是我測試時的一個配置目錄:vspringcloud> config> gateway> gateway-zuul>tmt-cms其中:gateway 與 gateway 服務(wù)同名,gateway-zuul 與 gateway-zuul服務(wù)同名修改hooks腳本為以下內(nèi)容:REPOS="$1"REV="$2"# 通過look獲取發(fā)生變更的文件目錄SVNLOOK=/usr/bin/svnlook# 發(fā)生變更的文件目錄集合CHANGEDDIRS=$($SVNLOOK dirs-changed $REPO

7、S)# 發(fā)生變更的文件目錄集合的第一條MASTERDIR=$(echo "$CHANGEDDIRS" | head -1)# 循環(huán)while "$CHANGEDDIRS" != "" ;do# 獲取最后一個目錄名稱,即服務(wù)名稱PROJECT=$(echo $MASTERDIR | awk -F / 'print $(NF-1)')echo $PROJECT >> /usr/svnrepos/hnapay2/hooks/logs # 發(fā)送刷新請求給 config server# 將$丫門目錄名稱與服務(wù)名稱對應(yīng)

8、if "$PROJECT" = "gateway" ; thenPROJECT="exp-gateway" ficurl -X POST 52:7001/bus/refresh?destination=$PROJECT:*# 刪除已經(jīng)發(fā)送請求的CHANGEDDIRS=$(echo "$CHANGEDDIRS" | grep -v ""MASTERDIR")# 獲取最新的發(fā)生變更的文件目錄MASTERDIR=$(echo "$CHANGEDDIRS

9、" | head -1) done優(yōu)化版本:REPOS="$1"REV="$2"SVNLOOK=/usr/bin/svnlookCHANGEDDIRS=$($SVNLOOK dirs-changed $REPOS)echo $CHANGEDDIRS >> /usr/svnrepos/hnapay2/hooks/logsMASTERDIR=$(echo "$CHANGEDDIRS" | head -1)#i=0while "$CHANGEDDIRS" != "" ;doech

10、o $(echo $MASTERDIR | awk -F / 'print $2') >>/usr/svnrepos/hnapay2/hooks/logs#獲取行的最后第二列,$NF為最后一列#PROJECT=$(echo $MASTERDIR | awk -F / 'print $(NF-1)')#獲取行的第二列PROJECT=$(echo $MASTERDIR | awk-F / 'print $2')#echo $PROJECT >> /usr/svnrepos/hnapay2/hooks/logs#將SVN目錄與服

11、務(wù)名稱對應(yīng)if "$PROJECT" = "gateway" ; thenPROJECT="exp-gateway"fi#將PROJECT放入數(shù)組#arr$i=$PROJECT#i='expr $i + 1'#連接超時時間2s,數(shù)據(jù)傳輸超時時間 5scurl -connect-timeout 2 -m 5 -X POST52:7001/bus/refresh?destination=$PROJECT:* >>/usr/svnrepos/hnapay2/hooks/logs 2&

12、gt;&1if "$?" != "0" ; thenecho "got error to refresh $PROJECT" >> /usr/svnrepos/hnapay2/hooks/logs fiCHANGEDDIRS=$(echo "$CHANGEDDIRS" | grep -v ""MASTERDIR")MASTERDIR=$(echo "$CHANGEDDIRS" | head -1)done#echo "$arr"

13、; >> /usr/svnrepos/hnapay2/hooks/logs#curl -X POST http:52:7001/bus/refresh?destination=$PROJECT:*echo "" >> /usr/svnrepos/hnapay2/hooks/logsecho"=">> /usr/svnrepos/hnapay2/hooks/logsecho "" >> /usr/svnrepos/hnapay2/hooks/logsspring clou

14、d config 目錄匹酉己spring cloud config 的目錄匹配規(guī)則如下:/application/profile/label/application-profile.yml/label/application-profile.yml/perties/label/perties在con巾g server端的配置文件中有個 searchPaths 的屬性,其意思就是定義config server 的掃描根目錄,還有一個是 default-label , 是定義 configserver 的默

15、認(rèn)label目錄:spring zapplication:EUTHnauDe : $ applicaticn . namecloud 8 n門寸: enabled.: truesvn:uci! $conf.svn »urius«rnaj»: $ (conf . svn立口3看rni)m總)password: 5 (conf. svnpassword)searchPaths : S 4 conf«vn«searchFathja)#gits* jjJj imj2a;,JLLLuh.上gu£口,_七/仃:,£_:j_l二l上口二口工上工二_:工_二二上二口 _dofault-lab®1: config申 prcvfiles;activ*: subveision如果想客戶端獲取指定目錄的配置,被指定的目錄就得與config server 的default-label目錄是同級目錄。ap.piupcr uvb 0 口 叩印131.15口

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論