9

我对 Akka 很陌生,对分布式编程也很陌生。使用 Akka 的 Mist 组件,我创建了受监督的 Actor 来异步处理 HTTP 请求。当前,所有内容都在具有本地参与者的一台物理机器上运行。我不明白的是如何构建一个具有多个盒子的真正容错系统。如 Akka 文档中所述:

此外,您(通常)需要知道一个盒子是否已关闭和/或您在另一个盒子上与之交谈的服务是否已关闭。在这里,参与者监督/链接是一个关键工具,不仅可以监控远程服务的健康状况,而且可以实际管理服务,如果参与者或节点出现故障,请对问题采取一些措施。比如在同一个节点或者另一个节点上重启actors。

我该怎么做呢?我正在寻找有关如何开始分发我的应用程序的示例或指示。我们组中的其他服务在多个 Tomcat 实例前使用 Apache 网关,因此 Tomcat 服务器宕机的事件对用户来说是透明的。我正在将我的服务部署到 Akka 微内核,并且需要在多个物理机器上实现类似级别的高可用性。

我正在使用 Akka 1.1.3。

4

2 回答 2

2

远程监督仅适用于 Akka 1.x 系列的客户端管理的远程参与者。

目前正在开发的 Akka 2.0 将支持透明集群、集群范围的监督和集群范围的生命周期监控。

于 2011-08-27T10:27:30.640 回答
1

您可能会考虑在运行 Mist 的 Akka 微内核实例前面放置一个 HTTP 负载均衡器,这将与您的组对“Apache 网关”所做的相匹配。

另一种方法是在多个实例上公开远程 Actor,然后使用 Akka 的 LoadBalancer 或 Actor Pool 发送消息,请参见此处

如果您有一个动态的机器池,则第二种方法有点麻烦,因为设备池希望以编程方式指定。Akka 2.0 通过在 akka.conf 文件中设置的集群支持解决了这个问题。

至于 2.0 的发布日期,它的价值 1.2 刚刚在2011-Sept-19发布。

于 2011-09-27T16:28:14.613 回答