java - 如何将 Typesafe Akka 与 Node.js 结合使用

标签 java node.js scala akka actor

我有一个需要操作大量 JSON 并将其注入(inject)到 Apache HBase 的情况。我们的系统在 Node.js 和 Mongo 上运行,因为我们需要增强性能,所以选择 HBase 来处理大数据。

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

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

ps。我的问题是关于如何使用 Akka 和 Node.js,而不是争论“当 JVM 拥有非常快的 JSON 操作库时为什么选择使用 Node.js?”,这是因为我们的系统已经进行了基准测试,而 Node.js 是选择一个来处理 JSON 操作。而且它已经处于生产阶段,因此从 Node.js 完全迁移到完整的 Scala 并不是我们今天的首要任务。

最佳答案

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

我认为沿着您建议的路径(通过 Java 互操作运行 NodeJs)不会带来什么好处,同时从长远来看会增加显着的复杂性。

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

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

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

关于java - 如何将 Typesafe Akka 与 Node.js 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31257191/

相关文章:

java - 如何在 JLabel 中垂直显示文本? (Java 1.6)

java - 如何有效地使用多线程

node.js - 错误 : Uncaught (in promise): Error: No provider for GoogleMaps

java - 由于 "Unable to compile"错误,无法运行 Rational Rhapsody

Java 重新收集随机选择的枚举并将其全部汇总

javascript - 尝试了解如何将回调合并到 Node.js/SQLITE 中

javascript - 无法让我的地理空间查询工作。在 Node 中查询 Mongo

scala - 有没有办法使用 Akka-Stream 获得可预测的 Actor 命名?

scala - Apache Spark K-Means 集群 - 用于输入的 RDD

scala - 内存不足