【发布时间】:2016-07-08 17:54:51
【问题描述】:
我已经创建了一个 Node.js (Meteor) 应用程序,并且正在研究未来处理扩展的策略。我已经将我的应用程序设计为一组微服务,我现在正在考虑在生产中实现它。
然而,我想做的是在一个服务器实例上运行许多微服务,以在它们使用少量资源的同时最大限度地利用资源。我知道容器对此很有用,但我很好奇是否有一种方法可以创建动态缩放的容器集:
- 编写命令,例如“如果运行此应用的容器达到 > 80% CPU/其他限制指标,则在此服务器上提供另一个应用容器”,
- 如果需要为额外的容器提供和准备其他服务器,
- 负载平衡这些容器之间的连接(这是否会影响服务器负载平衡,例如,向容器较少的服务器发送较少的连接?)
我研究过 AWS EC2、Docker Compose 和 nginx,但我不确定我是否朝着正确的方向前进。
【问题讨论】:
-
Meteor 1.3+中的代码结构有利于在Meteor中编写微服务。要管理服务之间的相互依赖关系,请使用 anotherMeteor = DDP.connect(anotherMeteorServer)。我的2c。我还没试过。
-
@Vijay 有时间我可能会自己回来回答这个问题。我想我知道如何做到这一点,虽然还没有时间尝试,所以如果你需要它,请关注这个空间以获得答案/如果我忘记回答并且你仍在搜索,请打扰我。
-
我们使用 AWS 来托管我们的 miroservices 应用程序,并使用 ECS(AWS docker 服务)来容器化不同的 API。在这种情况下,我们使用 AWS 自动扩展功能来管理扩展和扩展。检查这个。希望能帮助到你。 aws.amazon.com/blogs/compute/automatic-scaling-with-amazon-ecs
标签: node.js meteor amazon-ec2 docker microservices