如何将Java与nodejs集成以处理CPU繁重的任务?

时间:2013-08-02 13:34:31

标签: java node.js integration

我正在尝试为I / O繁重和CPU繁重的任务选择正确的Web技术。 NodeJs非常适合处理大负载,也可以扩展。但是,我被困在cpu重的部分。是否有可能将另一种技术(例如Java)集成到节点中,这样我就可以在其他线程中运行我的算法,然后在节点中再次使用结果。有没有现成的解决方案?任何其他建议都会非常好。

4 个答案:

答案 0 :(得分:17)

您可以使用node-java将Node JS与Java集成。

答案 1 :(得分:4)

如前一个答案所述,您可以使用node-java,这是一个与Java对话的npm模块。您还可以使用J2V8将Node.js包装为Java库,并使用Java提供Node.js API。

答案 2 :(得分:1)

答案是lambda architecture

NodeJs本身很不错 - 以轻量级方式处理快速查询,而不对数据进行任何额外的计算。

可以轻松地将CPU繁重的任务委托给基于JVM的专用组件(最好的是在JVM上)。通过使用消息代理和微服务很好地实现了这一点。

基于事件的体系结构,其中nodejs可以连接到像Cassandra或Mongodb这样的数据库,以及像Apache Spark这样的集群计算框架(不一定,但这取决于问题)来处理系统的CPU重量级部分。轻量级容器通过为每个组件提供良好的隔离运行时环境,为蛋糕增添了锦上添花。

这是迄今为止关于这个问题的结论。 我认为上面的建议有点消除了在java或其他基于JVM的解决方案下为cpu繁重的任务包装节点的需要。

答案 3 :(得分:0)

NodeJS基于以c ++编写的v8 javascript引擎。

因此可以在c ++中为NodeJS编写完全本机的插件。查看其中一些资源: