【问题标题】:How do I pass Eureka service ip to my java application running in a docker container?如何将 Eureka 服务 ip 传递给在 docker 容器中运行的 java 应用程序?
【发布时间】:2018-10-05 10:05:55
【问题描述】:

我在集群环境中的 docker 容器中运行了许多 java 和 python 服务。我正在使用 Eureka 进行服务发现,并且在应用程序配置文件中硬编码的 Eureka ip 地址在本地运行良好。我在为 Java 服务灵活配置 Eureka 服务时遇到问题 - 带有服务的 docker 容器将部署在 Eureka 将具有不同 IP 地址的三个环境中。 有没有办法使用例如传递 Eureka URI JVM环境变量?

或者如果我将 URI 作为应用程序参数传递,我怎样才能将其传播到 Eureka 客户端配置?

PS:我使用 AWS ECS,由于服务数量和现有 AWS 限制,我不能将所有 docker 容器放在一个任务定义中,不能使用 docker 名称解析,只能硬编码 Eureka 主机名,另一方面,我可能有多个Eureka 实例,并希望指定应该使用哪个特定容器。

【问题讨论】:

  • 我还没有找到一个很好的解决方案,目前我们只是在每个服务的 defaultZone 属性中放置了几个 Eureka 服务器。这部分有效 - 服务由它们可以访问的第一个 eureka 实例注册,但报告连接到其他实例的问题并且他们继续尝试。我不喜欢这种行为,所以对于某些环境,我只是简单地修复了一个 eureka 服务器 url。

标签: amazon-web-services docker amazon-ecs netflix-eureka service-discovery


【解决方案1】:

我的问题的答案是使用配置服务器,这个野兽的描述可以在这里找到https://dzone.com/articles/using-spring-config-server

【讨论】:

    猜你喜欢
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 2019-07-24
    • 2019-06-23
    • 2022-11-24
    • 1970-01-01
    相关资源
    最近更新 更多