【问题标题】:Spring-cloud brixton, eureka and docker with ephemeral ports带有临时端口的 Spring-cloud brixton、eureka 和 docker
【发布时间】:2016-12-01 20:09:15
【问题描述】:

我正在使用 spring cloud eureka 在 aws 上的 dockerised 环境中进行微服务注册。

当我使用 dockers 临时端口映射时,容器主机上暴露的端口是未知的。为了克服这个问题,我有一个自定义的EurekaInstanceConfigBean,它会向主机上的 docker 守护进程询问分配的端口,以便我可以使用它向 eureka 注册。

在注册开始之前一切正常。 EurekaDiscoveryClientConfiguration 包含一个 @EventListener(EmbeddedServletContainerInitializedEvent.class) 覆盖我在自定义 EurekaInstanceConfigBean 中分配的外部端口,并将其设置回容器内的本地端口。

我认为侦听器的目的是在 server.port=0 的情况下支持自动端口分配,但在我的设置中它破坏了一些东西。

问题是:我能以某种方式停止EurekaDiscoveryClientConfiguration 以覆盖我手动设置的端口吗?我可以用我自己的EurekaDiscoveryClientConfiguration吗?

【问题讨论】:

    标签: spring spring-cloud spring-cloud-netflix


    【解决方案1】:

    您可以使用主机网络,因此 docker 容器使用主机的网络堆栈,这使得服务可以通过其 IP 地址访问。

    我通过使用 docker-compose 来使用它。尽管边缘服务用作反向代理(在我的情况下基于 zuul),但这些服务都有随机端口。这些边缘服务有稳定的端口。

    【讨论】:

    • 嗨帕特里克,我的问题是在配置 bean 中设置端口,以便我可以在尤里卡注册。无论哪种方式,我现在都用忽略 setNonSecurePort 的版本覆盖了 EurekaInstanceConfigBean 并公开了一个替代设置器 - 有效但感觉有点骇人听闻......
    猜你喜欢
    • 2016-08-31
    • 2017-11-23
    • 1970-01-01
    • 2016-09-01
    • 2017-01-02
    • 2018-06-18
    • 2015-12-12
    • 1970-01-01
    • 2016-02-15
    相关资源
    最近更新 更多