微服务(三)-实现自动刷新配置(不重启项目情况下)

简介: 微服务(三)-实现自动刷新配置(不重启项目情况下)

这篇文章接着手动刷新配置中心的那篇。

1 、不带profile的情况下:

SpringCloud Bus+WebHooks(web端的一个自动推送的一个通知,相当于是一个钩子,让请求路径交给它来回调执行)+ribbatMQ

1.1、加入依赖:

1.2、然后启动下项目cloud-config:这里就有监控的路径了。这时就可以启动webHook了

1.3、由于是生产环境,在局域网里面把它发布到外网上面是不行的,所以要用到内网穿透的配置。把内网映射到外网 在访问就可以了。

参考网址:https://natapp.cn/article/natapp_newbie

1.4、这个端口号需要修改和config-provider中的应该是一样的。

1.5、下面的就是内网穿透的网址了

这样访问的结果也是一样的。

1.6、在gitee里面配置webhook

1.7、这里需要加moniter,实现实时检测和监控的。

然后提交


2.0、这种情况是不带profile的情况,重启项目cloud-provider

2.1、更新下git上面的provider.yml的文件

这里返回的结果是provider,因为它请求的就是provider这个文件,返回的结果也是它。

配置服务的后台有刷新了:

然后配置服务的客户端也就是cloud-provider不用重启,在去访问,这时就可以不用重启cloud-provider的服务,就能够自动得到最新的配置信息了。

2、如果带有profile的话,现在没有好的办法,必须手动去刷新配置,也就是参考手动刷新配置中心的那篇文章。

总结:1、一开始如果远程上的git配置信息,不发生变化的时候,是没有rabbitMQ和bus的。当启动config的时候会向远程的git拉取数据,然后保存到本地的临时的git仓库里面来。然后配置中心的客户端去本地的临时文件中去获取信息。

2、一旦git上的配置信息如果发生更新的话,比如原来的名字是张三,现在改为李四了。在SpringCloud中提供了SpringCloud Bus 与RabbitMQ 当启动配置服务会主动向ribbatiMQ主动去写一条数据,就是创建一条队列出来,而客户端启动的时候也会主动去创建一个队列,这个队列创建起来是放消息的。通过actuator/bus-refresh这样的映射路径向我们配置的队列里面configQueue写入一条消息,这条信息是由客户端订阅端来订阅的。很多的客户端来订阅的。一对多订阅的过程中发现这里有消息了,就会发送一条通知过来,就有刷新的通知,只要订阅了这个通知的所有的订阅者都会接收这个消息,在这个queue里面是有一个时间的,当时间过期的话,可能就消费不了了,因为不可能让消息堆积起来。并且消息队列本来就存在消息堆积的过程 。这些消息就会给当前对应的客户端去异步的方式消费这条消息,当发送这个消息的同时就会同时的去消费了。在其实有一个RefreshXXXEvvent事件。触发这个事件,还有一个标识@RefreshScope标注的内容才会去被局部刷新。

3、webhook(钩子 git的功能)的作用只是相当于远端的git更新的时候会自动回调actuator/bus-refresh这个地址,自动去调用这个地址当你配置的内容发生变化的时候就会触发这个事件从而回调这个地址actuator/bus-refresh。

相关文章
|
4月前
|
Dubbo 关系型数据库 MySQL
nacos常见问题之命名空间配置数据上线修改如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
251 1
|
4月前
|
网络协议 Java Nacos
nacos常见问题之在web界面 上下线服务时报错 400如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
|
4月前
|
Go 数据库 开发者
热更新最佳实践,网站无感知重启方法大全
热更新最佳实践,网站无感知重启方法大全
121 0
|
1月前
|
Java 数据库连接 Nacos
SpringCloud微服务配置管理、配置热更新
SpringCloud微服务配置管理、配置热更新
48 0
|
4月前
|
负载均衡 Nacos 数据库
【Nacos】配置管理、微服务配置拉取、实现配置热更新、多环境配置
【Nacos】配置管理、微服务配置拉取、实现配置热更新、多环境配置
105 1
|
4月前
|
监控 Java Nacos
【分布式流控组件 Sentinel 快速入门】——图文详解操作流程(上)
【分布式流控组件 Sentinel 快速入门】——图文详解操作流程
225 0
【分布式流控组件 Sentinel 快速入门】——图文详解操作流程(上)
|
11月前
|
缓存 Nacos 微服务
Nacos2.2.3版本,微服务注册上去了,然后关闭,注册实例还是显示健康,一直在那,要等大概一小时以后才消失
Nacos2.2.3版本,微服务注册上去了,然后关闭,注册实例还是显示健康,一直在那,要等大概一小时以后才消失,怎么解决?
569 1
|
4月前
|
Kubernetes Nacos 微服务
nacos常见问题之v2.2.3 k8s 微服务注册nacos强制删除 pod不消失如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
140 1
nacos常见问题之v2.2.3 k8s 微服务注册nacos强制删除 pod不消失如何解决
|
4月前
|
负载均衡 Ubuntu Java
nacos常见问题之升级到2.1.0重启后端服务如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
162 1
|
消息中间件 Linux Nacos
微服务相关组件的启动方法
微服务相关组件的启动方法
80 0