【发布时间】:2017-10-11 02:47:02
【问题描述】:
我正在使用 docker 构建一个微服务项目。
我的一个微服务是一个监听器,它应该从各种来源获取数据。
我想要实现的是能够动态地开始和停止从源获取数据。
例如在这张图中,我有 3 个源连接到 3 个 docker。
我的问题开始了,因为当有新源可用时,我需要创建另一个 docker 实例。在此示例中,假设源 #4 现在可用,我需要获取他的数据(我知道新源何时可用)但我希望它自动缩放(使用源 #4 信息进行收听)
我想出了两种解决方案,各有优缺点:
1) 创建一个运行侦听器服务的大量 docker 的 docker 池,每次有新源可用时,向可用的 docker 发送一条消息(使用 rabbitmq 但我认为不太相关)以开始获取数据。
在这个解决方案中,我有点担心无缘无故运行 docker 映像的内存消耗 - 但它不是一个非常复杂的解决方案。
2) 每当有新源可用时,创建一个新 docker(使用不同的环境变量)
使用此解决方案,我在创建 docker 时遇到问题。 目前我已经实现了这一点,但是启动 dockers 的服务(我们称之为管理器)只是一个常规的 nodejs 应用程序,它在同一台服务器上执行命令——我也需要它在一个 docker 容器内。
所以这里的问题是我无法从主 docker 创建一个 ssh 连接来创建我的新 Docker。
我不太确定我的两个解决方案是否都在正确的轨道上,并且非常感谢任何针对我的问题的建议。
【问题讨论】:
标签: node.js docker architecture openshift microservices