SpringCloud-微服务配置统一管理SpringCloud Config

复制代码

4、添加application属性文件:

server.port=9000

spring.application.name=config-server-9000

spring.cloud.config.server.git.uri=https://gitee.com/lfalex/spring-cloud-repo

5、启动项目,简单测试,访问:localhost:9000/application/dev,localhost:9000/application-dev.properties:

访问规则:

复制代码

/{appication}/{profile}/[{label}]

/{application}-{profile}.yml

/{application}-{profile}.properties

/{label}/{application}-{profile}.properties

/{label}/{application}-{profile}.yml

复制代码

它们都可以映射到对应的配置文件{application}-{profile}.properties,其中{label}为具体的分支,默认为master;

!

创建客户端(一般为具体的微服务):

1、创建Maven项目 config-client,添加依赖:

复制代码

org.springframework.boot

spring-boot-starter-web

org.springframework.cloud

spring-cloud-starter-config

org.springframework.boot

spring-boot-starter-actuator

复制代码

2、创建一般启动类即可,无需添加注解,创建Controller,为测试做准备:

复制代码

@Value(“${version}”)

private String version;

@RequestMapping(“/getVersion”)

public String getVersion() {

return this.version;

}

复制代码

3、为了更明显的测试Config是否生效,在application配置文件中添加:

server.port=9001

4、添加bootstrap.properties配置文件,bootstrap.properties为默认文件名,在springcloud中配置文件有个优先级的概念,当本地application.properties文件和bootstrap.properties文件中配置了同样的属性不同的值,由于bootstrap的优先级高,则在bootstrap中的属性不会被application中的覆盖,反而会覆盖掉application中的配置:

复制代码

#对应着config server所获取配置文件的{application}和URL

spring.application.name=application

spring.cloud.config.uri=http://localhost:9000/

#对应着文件后面的后缀{profile}

spring.cloud.config.profile=dev

#分支

spring.cloud.config.label=master

复制代码

5、先启动服务器,再启动客户端,观察端口和页面,由于前面在application中添加了端口为9001,而远程仓库的配置文件中也添加了端口9999:

这样就实现了基本的远程配置仓库了,但是一旦有文件更改还得重新启动项目,这样就很有问题了,所以需要刷新,使用/refresh端点刷新:

1、在application或远程文件中添加:

#由于要使用actuator,所以必须要将安全权限关闭

management.security.enabled=false

2、在controller上添加注解@RefreshScope注解:

@RestController

@RefreshScope //非重启项目手动刷新配置注解

public class ConfigController {

。。。。

}

3、启动测试,打开,修改version=dev-3.0.0为version=dev-4.0.0,并发送刷新请求http://localhost:9999/refresh,刷新测试页面查看:

三、SpringCloud Bus自动刷新配置

=======================

前面的基于端点刷新,只针对一个服务,若为多个微服务,这样就很繁琐,所以需要一个可以集体刷新或指定刷新的组件=》SpringCloud Bus;

1、使用SpringCloud Bus需要使用RabbitMQ,未安装的请安装,基于之前的端点刷新的项目,添加依赖:

org.springframework.cloud

spring-cloud-starter-bus-amqp

2、在bootstrap中增加RabbitMQ的配置:

spring.rabbitmq.host=localhost

spring.rabbitmq.port=5672

spring.rabbitmq.username=guest

spring.rabbitmq.password=guest

3、启动 config-bus-client测试,打开,修改version=dev-3.0.0为version=dev-4.0.0,并发送刷新请求http://localhost:9999/bus/refresh,刷新测试页面查看:



还可以通过Git或者码云的WebHooks来发送修改刷新配置请求:
us-client]( )测试,打开,修改version=dev-3.0.0为version=dev-4.0.0,并发送刷新请求http://localhost:9999/bus/refresh,刷新测试页面查看:

[外链图片转存中…(img-8icaIWkH-1718644865667)]

[外链图片转存中…(img-cn2d9OJo-1718644865668)]

[外链图片转存中…(img-x6oo2Wnk-1718644865669)]
[外链图片转存中…(img-nIf5mCf3-1718644865670)]
还可以通过Git或者码云的WebHooks来发送修改刷新配置请求:

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值