5

我正在尝试找出我们应该在下一个项目中使用 Akka 还是 Reactor。最重要的问题之一是未来选择的框架是否会提供远程处理。正如我所看到的,Akka 以我们想要的方式提供了这个。

在 GitHub wiki 中,不幸的是 TCP-server/client 部分是空白的,我还找不到关于它的其他信息。

反应堆会提供远程处理吗?

4

1 回答 1

7

我不认为 Akka 和 Reactor 是苹果对苹果。Reactor 故意最小化,只有几个外部依赖项。它为您提供了一组用于编写事件驱动应用程序的基本工具,但它在设计上并不强制执行特定模型。使用 Reactor 组件实现 Dynamo 系统实际上不会花费那么长时间。所需的一切都在那里,可能只需要编写一个教程来展示如何将事物连接在一起。

Akka 使用的 Dynamo 模型是一个经过验证的系统。Basho 在Riak中对它进行了出色的实现。很高兴看到 Akka 在这方面紧随其后。如果我们要实现一个 Reactor 集群系统,它很可能是 Dynamo 模型。但是由于 Reactor 基本上只是事件处理程序和主题发布/订阅,您的消费者可以进行任何您想要的远程通信。它们可以与 HTTP、AMQP、Redis 等集成。不需要特殊的 API 来做这类事情,因为它们只是事件。您可以在大约 10 分钟内编写 AMQP 客户端应用程序,并将数据从 RabbitMQ 发布到 Reactor 应用程序。

我们很可能在某些时候为不同的目的有不同的集群实现。Dynamo 模型可能适用于某些人,而其他人可能需要一个简单的基于 Redis 的系统。或者,也许可以利用 Reactor 中已有的组件与Java Chronicle一起进行基于磁盘的集群——你现在只需连接正确的消费者就可以做到这一点。但这些将在可以添加到 Reactor 的外部模块中。reactor-core 本身可能永远不会有一个固执己见的集群解决方案,因为它不符合这些核心组件的目的:JVM 上事件驱动应用程序的基础框架。

(我现在正在处理 TcpClient/TcpServer wiki 文档,所以希望这些内容将被填入 Reactor 的 M2 中,这将很快发生。)

于 2013-08-19T19:30:21.207 回答