2015-07-20 31 views
3

现在看几天微服务,我想知道人们如何去实现负载平衡自动化和扩展这些东西?自动化微服务负载平衡/缩放

我有一个特定的场景记住我想达到什么,但不知道是否有可能或者我正在考虑错误。所以这里有云......


比方说,我有一个名为A,B和C

我想的第一件事是透明的部署,我或许可以用舰队3台CoreOS机器集群。

然后,我想要检测到,当其中一个服务处于巨大负载下并部署其另一个实例并部署了该服务器和第一个服务器时,会自动进行负载平衡,这种方式不会中断其他服务使用它(从现在开始流量通过负载平衡器)。

另一种方式可能是我手动部署服务的其他版本,然后自动进行负载平衡并将流量路由器传输到负载平衡器。

那么最后一个问题,这和Akka集群有什么不同,它们的发展与微服务有什么不同?

回答

4

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

我会说 - 流量应该始终通过负载平衡器。在你最简单的情况下,当你有每个服务的1个实例时,它仍然需要通过负载平衡器(顺便说一下,我认为至少有2个东西是个好主意)。

在这种情况下,当您获得3倍的流量并想要启动另一个相同服务的容器时,一旦容器启动并运行,它必须在服务发现工具中注册自己,并自动更新load-balancer config以添加新的'上游'入口。

然后使用这种方法,您将能够更容易地扩大/缩小您的服务。

+0

我们使用类似的方法成功。主要要求是“节点下降时客户端应该看不到错误” –

+0

嗯。现在我觉得自己没有想到这件事。 :/ 你有什么特别的经验吗?你会推荐哪种负载均衡器? AWS上的vulcand vs elastic load balancer有什么缺点/好处?另外,你会说在同一台机器上有相同的服务实例是毫无意义的吗? –

+0

@MatjazMuhic我和nginx一起工作了多个服务,为我的需求做好了准备(从10到15个服务)。此外,如果您使用nginx/haproxy或其他LB,则必须找出Service Discovery工具和更新负载均衡器配置(取决于服务发现工具)之间的整合。看起来这正是vulcand所做的。 –