我是Akka的新手,也是分布式编程的新手。使用Akka的Mist组件,我创建了受监督的actor来异步处理HTTP请求。目前一切都在当地演员的一台物理机器上运行。我不明白的是如何构建一个具有多个盒子的真正容错系统。正如Akka文档中所述:
此外,您(通常)需要知道一个盒子是否已关闭和/或您正在另一个盒子上正在通话的服务是否已关闭。这里的actor监督/链接是一个关键工具,不仅可以监视远程服务的健康状况,还可以实际管理服务,如果actor或节点出现故障,可以对问题采取一些措施。例如在同一节点或另一个节点上重新启动actor。
我该怎么做?我正在寻找一个关于如何开始分发应用程序的示例或指针。我们组中的其他服务在多个Tomcat实例之前使用Apache网关,因此Tomcat服务器关闭的事件对用户是透明的。我正在将我的服务部署到Akka微内核,需要在多个物理盒中实现类似的高可用性。
我正在使用Akka 1.1.3。
答案 0 :(得分:2)
远程监控仅适用于Akka 1.x系列的客户端管理的远程角色。
目前正在开发的Akka 2.0将支持透明集群,集群范围的监控和集群范围的生命周期监控。
答案 1 :(得分:1)
您可以考虑在运行Mist的Akka Microkernel实例前放置一个HTTP负载均衡器,这将与您的组对“Apache网关”的匹配。
另一种方法是在多个实例上公开远程actor,然后使用Akka的LoadBalancer或Actor Pool来发送消息,see here
如果您拥有动态的计算机池,第二种方法会有点痛苦,因为要以编程方式指定设备池。 Akka 2.0使用在akka.conf文件中设置的群集支持来解决此问题。
至于2.0的发布日期,最近在2011-Sept-19上发布了它的价值1.2。