我正在使用准系统Spring云配置服务器和客户端应用程序运行测试。我执行了刷新方案(通过在客户端应用程序上调用/刷新端点) 在config-server最初关闭之后。这是我发现的
在第二个用例
中此时,如果客户端应用程序最初启动而无法成功连接到config-server,则/ refresh似乎不起作用。我这样做是为了测试 如果在客户端应用程序启动时无法访问config-server,则为客户端应用程序提供回退策略。 (后备策略是拥有本地打包的属性 如果config-server在启动时不可用,将使用如果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;
}
}
bootstrap.yml(在配置客户端应用程序上)
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中配置(通过配置服务器提供)
message:
greeting: Hello from Git-Edited!
答案 0 :(得分:2)
根据spring-cloud-config文档 -
如果您希望配置服务器偶尔可用 当你的应用程序启动时,你可以要求它在失败后继续尝试。 首先你需要设置spring.cloud.config.failFast = true,然后你 需要添加spring-retry和spring-boot-starter-aop到你的 类路径。默认行为是使用初始值重试6次 回退间隔为1000ms,指数乘数为1.1 随后的退避。您可以配置这些属性(和其他) 使用spring.cloud.config.retry。*配置属性。
参考 - &gt; http://cloud.spring.io/spring-cloud-static/spring-cloud-config/1.3.1.RELEASE/