如何在 Node.js 中使用 Typesafe Akka

How to use Typesafe Akka with Node.js

我有一个案例需要处理 JSON 的大数据流并将其注入 Apache HBase。我们的系统在 Node.js 和 Mongo 上工作,因为我们需要提高性能,所以选择 HBase 来处理大数据。

为了增强我的系统可扩展性,我更喜欢使用 Akka 的 Actor 模型进行消息传递,而不是任何其他消息队列系统。这是因为 Akka 提供的 Actor 模型为我提供了有关故障安全、Actor 管理和其他对完成工作非常有帮助的功能的优势。但它仍然在JVM层,直接从HBase注入和消费数据。

我希望我的 Node.js apps 也可以在 Akka 系统下使用 node-java。这是好的做法吗?如果不行,有什么解决方案可以让Node.js和Akka通信吗?

ps。我的问题是关于如何与 Akka 和 Node.js 一起工作,而不是争论 "why choose to use Node.js when JVM has really fast JSON manipulating library?",这是因为我们的系统已经进行了基准测试并且 Node.js 是处理 JSON 的选择操纵。此外,它已经处于生产阶段,因此完全从 Node.js 迁移到完整的 Scala 不是我们今天的首要任务。

澄清一下,Akka 实现了消息传递,因为它是并发模型,它支持消息队列模式(例如广播、发布-订阅)。但是,如果您真的需要 MQ 解决方案,您最好还是看看。

我认为沿着您提出的路径(运行 NodeJs 与 Java 互操作)将不会产生什么好处,同时从长远来看会增加显着的复杂性。

最好从架构的角度寻找答案。

如果必须做出决定,我会创建一个位于 NodeJs 前端和 HBase 之间的 Scala / Java Akka 微服务。您可以获得快速的概念验证 运行(您可以相对容易地退出)。

PS。如果您致力于 HBase,我强烈建议您也研究一下 Apache Spark,这使得驯服大数据变得更加容易。