首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Discovery First Bootstrap未找到ConfigServer

Spring Discovery First Bootstrap未找到ConfigServer
EN

Stack Overflow用户
提问于 2019-02-13 20:58:47
回答 1查看 692关注 0票数 1

目前,我正在使用Discovery First运行Spring Boot Services。一个接一个地启动服务工作得很好,但我在通过docker-compose一次性启动所有服务时遇到了问题。

discovery first bootstrap似乎没有像我预期的那样工作。我假设服务将暂停/重试,直到他从配置服务收到配置,这是通过eureka发现的。但目前它将尝试解析配置一次,然后服务将立即启动-无论是否已带来配置。

服务引导程序如下所示:

代码语言:javascript
复制
spring:
  application:
    name: my-service
  cloud:
    config:
      fail-fast: false
      discovery:
        enabled: true
        service-id: configserver
      retry:
        initialInterval: 2000
        multiplier: 1.5
        maxInterval: 60000
        maxAttempts: 10

server:
  port: ${APPLICATION_PORT:16000}
eureka:
  client:
    serviceUrl:
      defaultZone: http://${EUREKA_HOSTNAME:localhost}:15000/eureka/

eureka配置如下所示:

代码语言:javascript
复制
spring:
  application:
    name: manager
server:
  port: 15000
eureka:
  client:
    registerWithEureka: true
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${EUREKA_HOSTNAME:localhost}:15000/eureka/

最后但并非最不重要- configserver配置如下所示:

代码语言:javascript
复制
spring:
  application:
    name: configserver
  cloud:
    config:
      fail-fast: true
server:
  port: 15001
eureka:
  client:
    serviceUrl:
      defaultZone: http://${EUREKA_HOSTNAME:localhost}:15000/eureka/

这里有人能给点建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-13 22:43:12

我找到了问题所在:

实际上,我发现我们这边有两个问题。第一个没有合适的租约续订间隔。客户端刚刚重试接收缓存服务的配置。由于缓存的服务不包含配置服务,因此他无法接收到正确的配置。

第二个问题是没有等待足够的时间。在提高maxAttempts时已修复此问题。因此,配置和发现服务确实有足够的时间来启动。

客户端配置现在如下所示:

代码语言:javascript
复制
spring:
  application:
    name: service
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: CONFIGSERVER
      retry:
        initialInterval: 2000
        multiplier: 1.5
        maxInterval: 60000
        maxAttempts: 100

server:
  port: ${APPLICATION_PORT:16000}
eureka:
  instance:
    lease-renewal-interval-in-seconds: 10
  client:
    fetch-registry: true
    serviceUrl:
      defaultZone: http://${EUREKA_HOSTNAME:localhost}:15000/eureka/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54670804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档