我的应用程序由几个微服务组成。我想使用 NetFlix Eureka 作为发现服务器,并且我想将我的应用程序部署为 Docker 容器。我想在我的服务之间建立通信,但是有几个问题:
- Beanstalk 始终使用 nginx 作为容器的反向代理,默认情况下将所有请求路由到端口 80。好吧,我已经使用一些棘手的脚本解决了这个问题。
- 我的 EC2 Beanstalk 实例上有几个网络接口 - docker0 是 docker 的桥接器,eth0 是主机 IP。问题是,我无法动态确定容器内的主机 IP 地址,因此我无法在没有硬编码的情况下将其传递给 Eureka 发现服务器(也作为 Docker 映像运行)。使用代码或配置,我只能公开内部 Docker 接口而不是桥接。
所以,底线 - 我想使用 Docker、Beanstalk 和 Eureka 构建支持微服务的应用程序。解决方案应该是可扩展的,并且除了 Eureka 主机 IP 之外不应该有任何硬编码值。
谢谢。