动态服务器搭建文件,微服务架构:动态配置中心搭建

在微服务架构中,服务之间有着错综复杂的依赖关系,每一个服务都有本身的依赖配置,在运行期间不少配置会根据访问流量等因素进行调整,传统的配置信息处理方式是将配置信息写入xml、.properties等配置文件中,和应用一块儿打包,每次修改配置信息,都须要从新进行打包,效率极低,动态配置中心就是为了解决这一问题。动态配置中心也是一个微服务,咱们把微服务中须要动态配置的配置文件存放在远程git私有仓库上,微服务会去服务器读取配置信息,当咱们在本地修改完代码push到git服务器,git服务器端hooks自动检测是否有配置文件更新,若是有,git服务端经过消息队列给配置中心发消息,通知配置中心刷新配置文件。所以微服务读取到的就是最新的配置信息,实现了运行期动态配置。理解了配置中心的原理,下面来介绍应用Spring Cloud框架的configserver搭建动态配置中心的整个过程。

一、Git私有仓库搭建git

因为全部配置文件放在Git远程私有仓库上,咱们须要搭建Git私有仓库。spring

1)安装git服务器

# cd /etc/yum.repos.d/架构

# wget http://geekery.altervista.org/geekery-el5-x86_64.repoapp

# cd /data/soft/框架

# rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm微服务

# yum -y install gitpost

# git --versionspa

2)搭建git仓库

a、建立一个git用户,用来运行git服务

命令:$ sudo adduser git

b、建立证书登陆

收集全部须要登陆的用户的公钥,就是他们本身的id_rsa.pub文件,把全部公钥加入到/home/git/.ssh/authorized_keys文件里,一行一个。

c、初始化git仓库

选定或建立一个目录做为Git仓库,如:/home/git/microservice.git,将此目录初始化为git仓库

命令:$ sudo git init --bare microservice.git

$ sudo chown -R git:git microservice.git

d、克隆远程仓库

命令:$ git clone git@192.168.0.136:microservice.git

3)在本地安装git客户端

以上操做完成Git服务端私有仓库搭建后,须要在本地安装Git客户端,而且把公钥加入到服务端的/.ssh/authorized_keys配置文件中,这样就能够在本地克隆服务端代码并向服务端进行推送了。本地Git客户端的安装可参照Git教程。

二、安装消息队列

在远程机器上安装消息队列(rabbitmq)并启动。

e80b9c2cde018820e37b14b77529e13b.png

三、配置中心相关配置文件

配置中心(配置服务,例如:sample-config)的配置文件application.yml,添加以下配置:

35d8df168871840e559e8faea5a7cedf.png

1)configserver的git配置

configserver根据配置的Git服务器地址,去服务器上读取相应的配置文件信息。

uri: 用户名、远程Git服务器地址、私有仓库地址

username: Git服务器用户名(搭建仓库时建立的用户)

password: 用户密码

2)消息队列配置

当Git服务端检测到配置文件有更新时,会经过消息队列通知configserver刷新配置文件。

rabbitmq配置:

host: 消息队列的地址

port: 消息队列端口

username: 用户名

password: 密码

3)Dockerfile配置

因为采用ssh协议访问Git服务器时,须要手动输入确认链接信息,所以在这里咱们须要屏蔽此检查。咱们须要新建一个配置文件config(无后缀名)跟Dockerfile一块儿放在容器中,并在Dockerfile中进行配置(新建/.ssh目录,将config文件添加到此目录下)。

部署在容器中的文件:

03324df80f20dc0c406e612810a71281.png

config文件配置:

1eb917fba152b34c7687bf67188a1e60.png

Dockerfile配置:

4c4634022ae66843b38d83a714734e54.png

四、在服务中添加消息总线依赖配置

在须要将配置文件放到配置中心进行动态配置的服务中,添加消息总线的配置。

在服务的pom.xml文件中添加依赖:

org.springframework.cloud

spring-cloud-starter-bus-amqp

57ca5035b45ac13a083a50c0040f15f3.png

五、在Git服务端编写服务端hook

当本地Git客户端向服务端仓库推送更新时,Git服务端须要检测配置文件是否有更新,若是有,则须要向configserver发请求通知它刷新配置文件。这就须要用到服务端hook。在Git服务端的/.git/hooks/目录下,建立post-receive文件(无后缀名),并添加相应的脚本,当Git客户端推送更新,服务端更新完文件后会自动执行此post-receive文件脚本。

8121e272e2a60895eff2f296680f9c4b.png

六、在本地Git客户端提交修改并推送到Git服务端

在本地更新配置文件后,提交到本地Git仓库,而后将本地更新push到Git服务端。

相关Git命令:

$ git add xxx.xml xx.yml -------将修改的配置文件xxx.xml、xx.yml添加到暂存区

$ git commit -m “xxxxxx”-----将暂存区文件提交到本地Git仓库

$ git push origin master ------将本地更新推送到服务端

以上就是利用configserver实现动态配置中心的整个过程,整个配置完成后就能够在本地修改配置文件push到Git服务器,咱们的微服务就能够动态读取到最新的配置了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值