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

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

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

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。

相关文章
|
2月前
|
算法 安全 Java
微服务(四)-config配置中心的配置加解密
微服务(四)-config配置中心的配置加解密
|
10天前
|
网络安全 Nacos 开发者
Nacos作为流行的微服务注册与配置中心,“节点提示暂时不可用”是常见的问题之一
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,“节点提示暂时不可用”是常见的问题之一。本文将探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务的正常运行。通过检查服务实例状态、网络连接、Nacos配置、调整健康检查策略等步骤,可以有效解决这一问题。
22 4
|
10天前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,实际使用中常遇到“客户端不发送心跳检测”的问题。本文深入探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务正常运行。通过检查客户端配置、网络连接、日志、版本兼容性、心跳策略、注册状态、重启应用和环境变量等步骤,系统地排查和解决这一问题。
26 3
|
10天前
|
安全 Nacos 数据库
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改。本文详细探讨了这一问题的原因及解决方案,包括限制公网访问、使用HTTPS、强化数据库安全、启用访问控制、监控和审计等步骤,帮助开发者确保服务的安全运行。
23 3
|
3月前
|
安全 前端开发 Java
微服务网关及其配置
微服务网关及其配置
110 4
|
3月前
|
网络协议 微服务
【Azure 微服务】基于已经存在的虚拟网络(VNET)及子网创建新的Service Fabric并且为所有节点配置自定义DNS服务
【Azure 微服务】基于已经存在的虚拟网络(VNET)及子网创建新的Service Fabric并且为所有节点配置自定义DNS服务
|
3月前
|
Java 数据库连接 Nacos
SpringCloud微服务配置管理、配置热更新
SpringCloud微服务配置管理、配置热更新
108 0
|
3月前
|
安全 Nacos 数据库
【技术安全大揭秘】Nacos暴露公网后被非法访问?!6大安全加固秘籍,手把手教你如何保护数据库免遭恶意篡改,打造坚不可摧的微服务注册与配置中心!从限制公网访问到启用访问控制,全方位解析如何构建安全防护体系,让您从此告别数据安全风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其公网暴露可能引发数据库被非法访问甚至篡改的安全隐患。本文剖析此问题并提供解决方案,包括限制公网访问、启用HTTPS、加强数据库安全、配置访问控制及监控等,帮助开发者确保服务安全稳定运行。
345 0
|
3月前
|
安全 Nacos 数据安全/隐私保护
【技术干货】破解Nacos安全隐患:连接用户名与密码明文传输!掌握HTTPS、JWT与OAuth2.0加密秘籍,打造坚不可摧的微服务注册与配置中心!从原理到实践,全方位解析如何构建安全防护体系,让您从此告别数据泄露风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其连接用户名和密码的明文传输成为安全隐患。本文探讨加密策略提升安全性。首先介绍明文传输风险,随后对比三种加密方案:HTTPS简化数据保护;JWT令牌减少凭证传输,适配分布式环境;OAuth2.0增强安全,支持多授权模式。每种方案各有千秋,开发者需根据具体需求选择最佳实践,确保服务安全稳定运行。
317 0
|
3月前
|
微服务 应用服务中间件
微服务跨域(通过网关配置进行跨域)
在单体架构中,我们通常通过SpringMVC配置类实现CORS跨域支持,设置允许的来源、请求头、方法及凭证等。然而,在微服务架构下,因浏览器首先访问网关再进行服务路由,需在网关配置跨域。对于无SpringMVC环境的网关(如使用Gateway组件),我们可在YAML文件中配置`spring.cloud.gateway.globalcors`属性,以实现全局跨域支持。
83 0