Spring Cloud (六) - Config

概述:

问题:

当多个团队同时开发一个项目时,每个团队的配置有可能不统一,会导致功能不兼容的情况,再比如一般情况下修改配置文件需要重启项目,这样很是浪费精力,再比如将一些配置的账号密码放在配置文件中,这样所有的开发者都会看到,安全性得不到更好保障,为了解决以上等问题,统一配置中心出现了,它是cloud中的一个组件,我们可以通过这个组建对不同的服务进行不同的配置,这个组建存放于一些远程仓库比如svn,git等统一管理配置,快速切换各个环境的配置

使用:

服务端:

  1. 主函数添加@EnableEureka和@EnableConfigServer注解,需要注册到注册中心
  2. 配置文件中配置:
#注册中心
eureka.client.service-url.defaultZone=http://ip:port/eureka/
#svn
management.security.enabled=false
spring.cloud.config.server.svn.uri=svn://ip/codes/background
spring.cloud.config.server.svn.username=用户名
spring.cloud.config.server.svn.password=密码
spring.cloud.config.server.svn.default-label=config
#需要显示声明subversion,使用svn
spring.profiles.active=subversion

客户端:

  1. 配置文件:
#从远程获取配置文件
spring.cloud.config.discovery.enabled=true
#订阅的服务名称
spring.cloud.config.discovery.service-id=config-server
#使用消息总线时
management.security.enabled=false
#仓库分支配置文件名称
spring.cloud.config.name=schoolfront-client
#文件夹
spring.cloud.config.label=dev
#dev开发环境配置文件
#test测试环境
#pro正式环境
spring.cloud.config.profile=dev

这样就可以使用统一配置中心了

出现问题(spring cloud bus消息总线):

当使用统一注册中心时,在服务端修改完成配置之后,需要在client端重启才能更新配置,这里我们使用rabbitMQ消息队列来实现实时更新,而Bus就是用来操作消息组件的。
使用:
服务端只需要导包就可以:

  1. 导包
    在这里插入图片描述
    客户端:
  2. 导包
    在这里插入图片描述
  3. controller层添加@RefreshScope刷新配置
    在这里插入图片描述

简单说明:

  1. 在 config-server中引用bus,将服务端加入到消息总线中
  2. 当配置中心的文件发生改变时,pc端会发送一个/bus/refresh的post请求到configserver,然后,configserver会将刷新的消息请求发送到消息总线中,然后这个消息会被具体的实例读取到,会重新从configserver获取配置消息,实现动态刷新,
  3. /bus/refresh可以指定刷新的具体服务,使用:destination,/bus/refresh?destination=abcd
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值