分布式配置中心引发的问题


上次我们说到分布式配置中心(上一篇),能通过gitee集中管理文件。
问题描述:那当我们修改了gitee仓库的文件,那配置中心能及时的更新数据吗?


准备工作:

之前我们在user-dev配置文件中有test.name属性和值java,之后修改并在控制台打印这个值来测试是否能及时更新。
在这里插入图片描述

测试操作:

先在user-service(服务提供者)的Controller类中加上name属性:

@RestController
public class UserController{
	@Resource
	private UserService service;
	@Value("${test.name}")
	private String name;
	@GetMapping("/user/{id}")
	public User XXX(@PathVariable("id")Long id){
		//在控制台输出test.name属性的值,看是否更新成功
		System.out.println("配置文件中的test.name:"+ name);
		return service.XXX(id);
	}
}
测试结果:

挨个开启Eureka、配置中心和服务提供者。

当发送请求并正常响应时:
在这里插入图片描述
然后服务提供者、注册中心和配置中心的启动类不关闭,在仓库修改test.name的值为minbo1。然后刷新页面,发现test.name的值没有更新。当我们rerun服务提供者时,发现值更新了。
这就衍生出另一个问题。当一个服务有多个实例,也就是集群的时候,岂不是一个一个重启才能更新到值?!显然是不合理的。

这就需要用到消息总线
过程简述:微服务对消息队列进行监听,当接到消息队列的消息后,重新从配置中心获取配置信息,实现更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值