2013-11-03 29 views
3

我是阿卡的新手。但我一直在web项目工作多年。 此前,我们的用户“ngix + Tomcat集群”计划,一旦Tomcat服务器崩溃(物理机毁人亡)之一,Tomcat集群中的其他成员将接管注定要失败的服务器的请求。我们通过这个实现了高可用性。 在我们的新Web项目中,我们计划使用akka来实现容错和可伸缩性。这里有一台服务器是主演员,他的工作是将请求消息从外部分发给儿童演员。儿童演员可以在本地或远程分发。一旦有任何一个小孩演员失败,主演就会修复它。 我的问题是,一旦掌握演员的失败(也许是机器crashs),我应该怎么实现这个案件的高可用性?如果机器崩溃,主演员驻留,我们必须手动重新启动机器。在这段时间内,服务必须暂停一段时间。这是我们不能接受的。 谁能告诉我,我该怎么办才能解决这个问题?如何在分布式系统中解析akka,实现高可用性?

+0

你得到解决..? – Muhunthan

回答

0

我会建议使用外部负载平衡器。例如,你可以在你的阿卡群集节点的所有地址报告给你的web应用程序的中间层(并缓存也有一段时间),负载均衡请求的方式从中层到您的阿卡后端(例如,挑选随机整群节点每次)。

如果您的Akka后端为您的儿童演员重新获得某种单点资源获取,您可以尝试使用Cluster Singleton作为主演员。在这种情况下,所有集群节点都应将客户端请求发送到集群Singleton,然后集群Singleton可以以某种特定方式在所有集群节点之间分配任务。