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

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

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

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。

相关文章
|
缓存 Java API
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的配置
本文介绍了在Spring Boot中配置Swagger2的方法。通过创建一个配置类,添加`@Configuration`和`@EnableSwagger2`注解,使用Docket对象定义API文档的详细信息,包括标题、描述、版本和包路径等。配置完成后,访问`localhost:8080/swagger-ui.html`即可查看接口文档。文中还提示了可能因浏览器缓存导致的问题及解决方法。
1376 0
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的配置
|
Java Maven Android开发
微服务——SpringBoot使用归纳——Spring Boot开发环境搭建和项目启动
本文介绍了Spring Boot开发环境的搭建和项目启动流程。主要内容包括:jdk的配置(IDEA、STS/eclipse设置方法)、Spring Boot工程的构建方式(IDEA快速构建、官方构建工具start.spring.io使用)、maven配置(本地maven路径与阿里云镜像设置)以及编码配置(IDEA和eclipse中的编码设置)。通过这些步骤,帮助开发者顺利完成Spring Boot项目的初始化和运行准备。
1321 0
微服务——SpringBoot使用归纳——Spring Boot开发环境搭建和项目启动
|
Java 关系型数据库 数据库
微服务——SpringBoot使用归纳——Spring Boot事务配置管理——Spring Boot 事务配置
本文介绍了 Spring Boot 中的事务配置与使用方法。首先需要导入 MySQL 依赖,Spring Boot 会自动注入 `DataSourceTransactionManager`,无需额外配置即可通过 `@Transactional` 注解实现事务管理。接着通过创建一个用户插入功能的示例,展示了如何在 Service 层手动抛出异常以测试事务回滚机制。测试结果表明,数据库中未新增记录,证明事务已成功回滚。此过程简单高效,适合日常开发需求。
1917 0
|
Java 测试技术 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——少量配置信息的情形
本课主要讲解Spring Boot项目中的属性配置方法。在实际开发中,测试与生产环境的配置往往不同,因此不应将配置信息硬编码在代码中,而应使用配置文件管理,如`application.yml`。例如,在微服务架构下,可通过配置文件设置调用其他服务的地址(如订单服务端口8002),并利用`@Value`注解在代码中读取这些配置值。这种方式使项目更灵活,便于后续修改和维护。
415 0
|
Java 微服务 Spring
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录——使用Logger在项目中打印日志
本文介绍了如何在项目中使用Logger打印日志。通过SLF4J和Logback,可设置不同日志级别(如DEBUG、INFO、WARN、ERROR)并支持占位符输出动态信息。示例代码展示了日志在控制器中的应用,说明了日志配置对问题排查的重要性。附课程源码下载链接供实践参考。
1483 0
|
SQL Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— application.yml 中对日志的配置
在 Spring Boot 项目中,`application.yml` 文件用于配置日志。通过 `logging.config` 指定日志配置文件(如 `logback.xml`),实现日志详细设置。`logging.level` 可定义包的日志输出级别,例如将 `com.itcodai.course03.dao` 包设为 `trace` 级别,便于开发时查看 SQL 操作。日志级别从高到低为 ERROR、WARN、INFO、DEBUG,生产环境建议调整为较高级别以减少日志量。本课程采用 yml 格式,因其层次清晰,但需注意格式要求。
1552 0
|
Java 数据库连接 微服务
微服务——MyBatis配置——事务管理
本段内容主要介绍了事务管理的两种类型:JDBC 和 MANAGED。JDBC 类型直接利用数据源连接管理事务,依赖提交和回滚机制;而 MANAGED 类型则由容器全程管理事务生命周期,例如 JEE 应用服务器上下文,默认会关闭连接,但可根据需要设置 `closeConnection` 属性为 false 阻止关闭行为。此外,提到在使用 Spring + MyBatis 时,无需额外配置事务管理器,因为 Spring 模块自带的功能可覆盖上述配置,且这两种事务管理器类型均无需设置属性。
254 0
|
Java 数据库连接 数据库
微服务——MyBatis配置——多环境配置
在 MyBatis 中,多环境配置允许为不同数据库创建多个 SqlSessionFactory。通过传递环境参数给 SqlSessionFactoryBuilder,可指定使用哪种环境;若忽略,则加载默认环境。`environments` 元素定义环境配置,包括默认环境 ID、事务管理器和数据源类型等。每个环境需唯一标识,确保默认环境匹配其中之一。代码示例展示了如何构建工厂及配置 XML 结构。
252 0
|
Java 数据库连接 数据库
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——MyBatis 介绍和配置
本文介绍了Spring Boot集成MyBatis的方法,重点讲解基于注解的方式。首先简述MyBatis作为持久层框架的特点,接着说明集成时的依赖导入,包括`mybatis-spring-boot-starter`和MySQL连接器。随后详细展示了`properties.yml`配置文件的内容,涵盖数据库连接、驼峰命名规范及Mapper文件路径等关键设置,帮助开发者快速上手Spring Boot与MyBatis的整合开发。
1949 0
|
缓存 Java 应用服务中间件
微服务——SpringBoot使用归纳——Spring Boot集成Thymeleaf模板引擎——依赖导入和Thymeleaf相关配置
在Spring Boot中使用Thymeleaf模板,需引入依赖`spring-boot-starter-thymeleaf`,并在HTML页面标签中声明`xmlns:th="http://www.thymeleaf.org"`。此外,Thymeleaf默认开启页面缓存,开发时建议关闭缓存以实时查看更新效果,配置方式为`spring.thymeleaf.cache: false`。这可避免因缓存导致页面未及时刷新的问题。
545 0

热门文章

最新文章