当前位置: 首页 > 知识库问答 >
问题:

如果在初始启动期间Config-Server关闭,Spring Config-Client不会刷新

魏俊茂
2023-03-14
    null
  • 客户端应用程序启动并成功连接到配置服务器。我看到来自config-server的值已经被客户机-应用程序成功地获取
  • 我在Git中做了一个更改,并调用客户机应用程序上的/refreshendpoint。属性刷新成功。

此时,如果客户端应用程序最初启动时未能成功连接到config-server,那么/refresh似乎不起作用。我这样做是为了在客户端应用程序启动时,如果无法访问config-server时,测试客户端应用程序的回退策略。(后备策略是,如果启动时配置服务器不可用,则使用本地打包的属性。如果配置服务器可用,则覆盖本地属性)。为什么这不起作用,我可以做什么不同的事情,有什么建议吗?提前谢了。

编辑

@EnableConfigServer
@SpringBootApplication
public class ConfigServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}
@RestController
@RefreshScope
@Component
public class Greeter {
    @Value("${message.greeting}")
    String greeting;

    @RequestMapping(value = "/",produces = "application/json")
    public List<String> index(){
        List<String> env = Arrays.asList("message.greeting: " + greeting);
        return env;
    }

}
spring:
  application:
    name: configclient
  cloud:
    config:
      uri: http://localhost:8888
management:
  security:
    enabled: false
logging:
  config: classpath:logback.xml
server:
  port: 8000

application.yml

message:
  greeting: Hello from Local!

Git中的配置(通过config-server提供)

message:
  greeting: Hello from Git-Edited!

共有1个答案

姜建德
2023-03-14

根据spring-cloud-config文档-

如果您预计应用程序启动时配置服务器可能偶尔不可用,您可以要求它在失败后继续尝试。首先,您需要设置spring.cloud.config.failfast=true,然后需要将spring-retry和spring-boot-starter-aop添加到类路径中。默认行为是重试6次,初始退避间隔为1000ms,后续退避的指数乘数为1.1。您可以使用spring.cloud.config.retry.*配置属性配置这些属性(以及其他属性)。

参考->http://cloud.spring.io/spring-cloud-static/spring-cloud-config/1.3.1.release/

 类似资料:
  • 我使用springcloud config server在生产环境中按计划在运行时刷新我的应用程序属性。我的日程表每两周一次,没有任何问题。 我的应用程序在Kubernetes cloud上运行在多个吊舱上。吊舱随时可能崩溃或重新启动。当pod崩溃/重新启动时,它在应用程序启动时从配置服务器和存储库中获取最新的属性文件,而不是等待下一个计划的刷新周期。 任何解决以上问题的建议将不胜感激。

  • 我是一个非常好的noob,所以我想我正在用twitter引导模式来监督一些事情(可能很明显)。我想做的是让一个模态只在手机上启动。这在添加类时效果很好。modal div上的可视电话。到目前为止还不错。但我希望它能工作,这意味着你可以用X键关闭它。我不能让按钮工作。 在HTML的底部,我把jquery.js(第一)和bootstrap.modal.jsbootstrap.transition.js

  • 我已经实现了一个简单的应用程序来理解spring cloud是如何为客户端配置的。 它只包含两个类:

  • 为了在Eclips 2020-06的Java Swing中运行JTable,导入了rs2xml.jar文件。但在此之后,当运行程序时,会出现以下错误。 初始化引导层Java.lang.module.FindException时出错:无法派生E:\Progrm Learning\Java\Student\rs2xml.jar的模块描述符,原因是:Java.lang.module.InvalidMod

  • 问题内容: 我想知道如果不手动关闭流,何时关闭。我的意思是,如果引用的范围不再存在,流将被关闭吗? 请考虑以下示例方案。 在这里,一旦完成流处理,我将退出,但是反过来将继续执行该程序的程序不会终止,而是继续进行其他操作。 我没有关闭溪流。一旦对A类的引用范围结束,它会自动关闭吗?(即何时结束)?GC会照顾吗?另外,我读到,一旦流程结束,流将关闭,并且系统释放为其他进程保留的所有资源。我们如何检查流

  • 我使用的是Windows 10系统,安装了Eclipse,我通过cmd运行java项目,但我需要一个IDE,每次尝试运行类文件时,我都会收到以下错误消息: 启动层初始化期间出错 JAVAlang.module。FindException:找不到模块myproject 或者类似的东西。 这是我正在运行的代码: 请帮忙