zoukankan      html  css  js  c++  java
  • springcloud-动态刷新之手动版

      配置的读取是:服务--> 配置中心--> github;当github的配置发生改变,配置中心是能实时监控到并读取的,但是我们的服务并没有这个功能,他只是在启动的时候读取一次而已,并没有监控配置中心。目前我就要解决这个问题,步骤如下:

      1.在 服务 添加下面的依赖,该依赖用于监控自身的变化

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>

      2. 配置如下信息,用于暴露监控端点,用于被通知。这里的 * 代表所有端点都暴露,比如info,health,refresh等端点都可以被访问

    # 暴露监控端点
    management:
      endpoints:
        web:
          exposure:
            include: "*"

      3. 在要读取配置的业务类上加一个注解,实现动态刷新;记住是在读取配置的业务类加,你加到比如主启动上没有用

    @RestController
    @RefreshScope
    public class ConfigClientController {
    
        @Value("${config.info}")
        private String configInfo;

      4. 做了上面的配置还实现不了动态刷新,还需要手动给 该服务 发送一个post请求的url,用于提示该服务动态刷新,可使用curl发送给该服务的refresh端点如下:

    curl -X POST http://localhost:3355/actuator/refresh  # /refresh前面是固定的

      上面的步骤虽然能实现刷新配置,比重启服务好很多。但是还存在问题,要是有很多个服务呢?那就要手动发送多个post请求就很麻烦,config有没有解决方案呢? 答案是没有,config他自己没有能力做到,但是 消息总线 能做到,比如bus,nacos等等

  • 相关阅读:
    array、vector、forward-list、list、deque的扩容,栈与队列,基于范围的for循环
    带默认参数值的函数
    :: 访问全局变量
    using来定义类的别名,typedef,#define
    const int* p
    内存
    变量的定义,强制类型转换
    HTTP请求流程(一)----流程简介
    DIY一个DNS查询器:程序实现
    详解C/C++函数指针声明
  • 原文地址:https://www.cnblogs.com/ibcdwx/p/14449209.html
Copyright © 2011-2022 走看看