我正在使用spring cloud eureka在aws上的dockerised环境中进行微服务注册。
由于我正在使用docker临时端口映射,因此容器主机上公开的端口未知。为了克服这一点,我有一个自定义EurekaInstanceConfigBean
,它要求主机上的docker守护进程为指定的端口,以便我可以使用它来注册eureka。
在注册开始之前一切正常。 EurekaDiscoveryClientConfiguration
包含@EventListener(EmbeddedServletContainerInitializedEvent.class)
,它覆盖我在自定义EurekaInstanceConfigBean
中分配的外部端口,并将其设置回容器内的本地端口。
我认为听众的目的是在server.port=0
的情况下支持自动端口分配,但在我的设置中它正在破坏。
问题是:我可以以某种方式阻止EurekaDiscoveryClientConfiguration
覆盖我手动设置的端口吗?我可以以某种方式使用我自己的EurekaDiscoveryClientConfiguration
吗?
答案 0 :(得分:0)
您可以使用主机网络,因此docker容器使用主机的网络堆栈,该服务器可以在其IP地址上访问该服务。
我通过使用docker-compose来使用它。尽管有作为反向代理的边缘服务(在我的情况下是基于zuul的),所有服务都具有随机端口。这些边缘服务具有稳定的端口。