【发布时间】:2017-06-08 22:01:05
【问题描述】:
我知道这个问题听起来很含糊,但我会尝试解释我的问题陈述。
我有一个带有多个服务的 Spring 云应用程序(使用 Netflix Eureka 作为服务发现),它们部署在 docker 容器中,使用 docker compose 链接和旋转容器,在单个容器部署中一切正常,但问题是自动扩展单个服务/容器,即拥有单个服务的多个容器,因为我的容器与端口绑定,因此 docker-compose scale 将不起作用。
我在谷歌上搜索,发现我可以使用负载均衡器和旋转具有不同端口的容器来提供服务,但我不希望这样,因为事实上我正在使用客户端负载均衡。
有人可以建议我如何自动为服务旋转多个容器,同时记住容器可以使用它们的服务名称相互通信。
【问题讨论】:
-
如果您使用的是 Eureka,为什么容器使用的端口甚至主机很重要?它将在 Eureka 注册并使用相同的服务名称,然后其他服务可以使用 Eureka 发现该服务的所有地址。
-
@RyanBaxter,你说得对,我们可以做到这一点,但我一直在寻找一种使用 docker-compose 和 swarm 实现这一目标的方法
-
我知道如果你将容器链接在一起,链接容器的主机名将放在 hosts 文件中,但这不是 eureka 提供的服务发现。
标签: docker docker-compose spring-cloud