【问题标题】:Microservices Config and eureka service which one to start first?Microservices Config和eureka service先启动哪一个?
【发布时间】:2017-08-24 20:02:17
【问题描述】:

我正在使用 spring boot 和 netflix OSS 在微服务中创建一个简单的项目来弄脏我的手。我创建了两个服务

  1. 必须在发现中注册自身的配置服务(eureka) 服务。
  2. 需要运行配置服务才能获取其配置的发现服务。

现在,当我启动这些服务时,由于相互依赖,这两个服务都失败了。解决此问题的最佳做法是什么?先从哪一个开始。

PS:- 我知道我正在创建循环依赖,但是如何处理这种情况,我想通过配置服务器也保留 eureka 配置

谢谢

【问题讨论】:

  • 所以你有 2 个服务并创建了一个循环依赖...这显然行不通。
  • @M.Deinum 当时的最佳做法是什么。我想将我的配置服务器注册到 eureka,以便其他服务可以引用它,对于 eureka 服务,我也想从配置服务器中选择配置
  • 阅读您所写的内容...您在 2 个软件组件之间存在循环依赖关系...
  • 我们最终在我的一个项目中为配置应用程序使用了一个静态 DNS 名称(无论如何我希望跨实例完全一致且没有版本控制),以便 Eureka 可以毫无挑战地开始。

标签: spring-boot intellij-idea microservices netflix-eureka netflix


【解决方案1】:

相信你可以在spring cloud config server官方文档中找到你的问题的答案: 这里:http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_spring_cloud_config_client

基本上,您必须在“Config First Bootstrap”或“Discovery First Bootstrap”之间进行选择。

来自文档: “如果您使用的是 `DiscoveryClient 实现,例如 Spring Cloud Netflix 和 Eureka Service Discovery 或 Spring Cloud Consul(Spring Cloud Zookeeper 尚不支持此功能),那么您可以让 Config Server 注册到 Discovery Service ,但在默认的“配置优先”模式下,客户端将无法利用注册。

如果您更喜欢使用 DiscoveryClient 来定位配置服务器,您可以通过设置 spring.cloud.config.discovery.enabled=true(默认为“false”)来实现。最终结果是客户端应用程序都需要具有适当发现配置的 bootstrap.yml(或环境变量)。 (...)"

【讨论】:

    猜你喜欢
    • 2019-01-29
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 2017-11-07
    相关资源
    最近更新 更多