SpringCloudconfigservice+EventBus+SVN实现自动更新配置_第1页
SpringCloudconfigservice+EventBus+SVN实现自动更新配置_第2页
SpringCloudconfigservice+EventBus+SVN实现自动更新配置_第3页
SpringCloudconfigservice+EventBus+SVN实现自动更新配置_第4页
SpringCloudconfigservice+EventBus+SVN实现自动更新配置_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.仓1J建 config service 月艮务引入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#刷新时,关闭安全验证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服务搭建完成。2.给SVN服务器增加hook登录39服务器,进入 svn的仓库目录下的hooks目录:/usr/svnrepos/hnapay2/hooks从 post-commit.tmpl拷贝份 post-commit 文件:cp post-commit.tmpl post-commit修改post-commit 文件内容为:#!/bin/shcurl -X POST 52:7001/bus/refresh其中:10.

5、10.8.252:7001 为 config-server 的请求 IP 及端口修改post-commit文件为可执行文件:chmod +x post-commit到此就实现了配置中心的配置修改后,其他所有服务均自动重新获取配置。注意:只有引入了 spring-cloud-starter-bus-amqp模块的服务才会重新获取配置扩展:为指定项目进行刷新原理:根据SVN的hooks获取到被update 的配置文件目录,再通过/bus/refresh?destination=customers:*旨令进行刷新要求:SVN的目录按serviceId 命名,当然也可以在 svn的hooks脚本中进行

6、目录与 server 对应。如下图是我测试时的一个配置目录:vspringcloud> config> gateway> gateway-zuul>tmt-cms其中:gateway 与 gateway 服务同名,gateway-zuul 与 gateway-zuul服务同名修改hooks脚本为以下内容:REPOS="$1"REV="$2"# 通过look获取发生变更的文件目录SVNLOOK=/usr/bin/svnlook# 发生变更的文件目录集合CHANGEDDIRS=$($SVNLOOK dirs-changed $REPO

7、S)# 发生变更的文件目录集合的第一条MASTERDIR=$(echo "$CHANGEDDIRS" | head -1)# 循环while "$CHANGEDDIRS" != "" ;do# 获取最后一个目录名称,即服务名称PROJECT=$(echo $MASTERDIR | awk -F / 'print $(NF-1)')echo $PROJECT >> /usr/svnrepos/hnapay2/hooks/logs # 发送刷新请求给 config server# 将$丫门目录名称与服务名称对应

8、if "$PROJECT" = "gateway" ; thenPROJECT="exp-gateway" ficurl -X POST 52:7001/bus/refresh?destination=$PROJECT:*# 删除已经发送请求的CHANGEDDIRS=$(echo "$CHANGEDDIRS" | grep -v ""MASTERDIR")# 获取最新的发生变更的文件目录MASTERDIR=$(echo "$CHANGEDDIRS

9、" | head -1) done优化版本: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、务名称对应if "$PROJECT" = "gateway" ; thenPROJECT="exp-gateway"fi#将PROJECT放入数组#arr$i=$PROJECT#i='expr $i + 1'#连接超时时间2s,数据传输超时时间 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 的目录匹配规则如下:/application/profile/label/application-profile.yml/label/application-profile.yml/perties/label/perties在con巾g server端的配置文件中有个 searchPaths 的属性,其意思就是定义config server 的扫描根目录,还有一个是 default-label , 是定义 configserver 的默

15、认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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论