自动化微服务负载平衡/缩放

Automating microservices load balancing / scaling

这几天一直在研究微服务,我想知道人们是如何自动化负载平衡和扩展这些东西的?

我心里有一个具体的场景,我想实现什么,但不确定这是否可能,或者我的想法有误。所以就这样...


假设我有一个由 3 台名为 A、B 和 C 的 CoreOS 机器组成的集群。

我想要的第一件事是透明部署,我可能会使用 fleet。

然后我想检测,当其中一项服务承受巨大负载时,部署它的另一个实例,并部署第一个和第一个实例,以一种不会中断其他服务的方式自动进行负载平衡正在使用它(从现在开始流量通过负载均衡器)。

另一种方法是我手动部署另一个版本的服务,然后自动获得负载平衡并将流量路由到负载平衡器。

那么最后一个问题,这与 Akka 集群之类的东西有何不同,它们的开发与微服务有何不同?

在我看来,在你问的问题中,你的答案有一个提示“(流量通过负载均衡器从现在开始)”。

我会说 - 流量应该始终通过负载均衡器

在最简单的情况下,当每个服务有 1 个实例时,它仍然必须通过负载均衡器(顺便说一句,我认为至少有 2 个是个好主意)。

在那种情况下,当您获得 3 倍的流量并想要启动同一服务的另一个容器时,一旦容器启动并且 运行 它必须在服务发现工具中注册自己并自动更新负载-平衡器配置以添加新的 'upstream' 条目。

然后使用这种方法,您将能够更轻松地 up/down 扩展您的服务。