我正在编写一个应用程序,它由几个基于 Spring Boot 的微服务组成,前端有一个基于 zuul 的反向代理 -
当我在我的机器上启动服务时它可以工作,但是对于服务器部署,我想使用 docker 来提供服务,但这似乎现在不可能。
通常你会在容器外部有一个固定的“内部”端口和随机端口。但是容器中的应用程序不知道外部端口(和 IP)。
Netflix 工具与我想要编写高效的微服务架构相匹配,并且在概念上我真的很喜欢 docker。据我所知,启动容器会很麻烦,收集主机上的外部端口并将其传递给应用程序,因为您不能在应用程序启动后简单地更改端口。
有什么方法可以将 eureka 与基于 docker 的客户端一起使用?
[更新] 我想我在解释问题方面做得很差。所以也许这更澄清了一点:
eureka 服务器本身可以在 docker 中运行,因为我只有一个,外部端口无所谓。我可以使用链接功能从客户端访问它。
问题是客户端注册自己的 URL。例如https://localhost:8080/但由于动态端口分配,它实际上只能通过https://localhost:54321/访问
所以 eureka 会为服务返回错误的 URL。
更新 我在下面更新了我的答案,所以看看那里。