【问题标题】:Multiple Requests at Config Server after Restart重新启动后配置服务器上的多个请求
【发布时间】:2017-05-13 06:40:50
【问题描述】:

POST 在云配置客户端上重新启动后,会创建一个新的ConfigServicePropertySourceLocator,并保留旧的ConfigServicePropertySourceLocator。问题是,它们都是在重启后被调用的,所以如果我 POST 重启 10 次,我会得到 11 个 bean 11 个调用,这会导致 11 个 GET 调用配置服务器。

断点在SpringApplication#addInitializers(ApplicationContextInitializer<?>... initializers)

this = {SpringApplication@2244} 
initializers = {ApplicationContextInitializer[2]@6093} 
 0 = {PropertySourceBootstrapConfiguration$$EnhancerBySpringCGLIB$$56dce074@6097} 
 1 = {EnvironmentDecryptApplicationInitializer@6098} 
this.initializers = {ArrayList@3671}  size = 10
 0 = {DelegatingApplicationContextInitializer@3784} 
 1 = {ContextIdApplicationContextInitializer@3785} 
 2 = {ConfigurationWarningsApplicationContextInitializer@3786} 
 3 = {ServerPortInfoApplicationContextInitializer@3787} 
 4 = {SharedMetadataReaderFactoryContextInitializer@3788} 
 5 = {AutoConfigurationReportLoggingInitializer@3789} 
 6 = {BootstrapApplicationListener$AncestorInitializer@3678} 
 7 = {PropertySourceBootstrapConfiguration$$EnhancerBySpringCGLIB$$56dce074@3705} 
 8 = {EnvironmentDecryptApplicationInitializer@3706} 
 9 = {BootstrapApplicationListener$DelegatingEnvironmentDecryptApplicationInitializer@3715} 

如您所见,它即将在initializer 列表中添加另一个PropertySourceBootstrapConfiguration 实例。

什么可能导致这种情况,我该如何避免?

【问题讨论】:

    标签: java spring spring-cloud spring-cloud-config


    【解决方案1】:

    这似乎是一个已知问题 - 在 GitHub 上记录了一个错误:https://github.com/spring-cloud/spring-cloud-commons/issues/138 - 创建了一个项目来重现该问题 (https://github.com/nicolaferraro/spring-cloud-context-example),这似乎是相当普遍的问题。

    【讨论】:

    • 谢谢。我以为我要疯了
    猜你喜欢
    • 2011-04-21
    • 2021-05-10
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 2014-08-29
    • 2022-01-02
    相关资源
    最近更新 更多