我正在尝试为I / O繁重和CPU繁重的任务选择正确的Web技术。 NodeJs非常适合处理大负载,也可以扩展。但是,我被困在cpu重的部分。是否有可能将另一种技术(例如Java)集成到节点中,这样我就可以在其他线程中运行我的算法,然后在节点中再次使用结果。有没有现成的解决方案?任何其他建议都会非常好。
答案 0 :(得分:17)
您可以使用node-java将Node JS与Java集成。
答案 1 :(得分:4)
如前一个答案所述,您可以使用node-java,这是一个与Java对话的npm模块。您还可以使用J2V8将Node.js包装为Java库,并使用Java提供Node.js API。
答案 2 :(得分:1)
NodeJs本身很不错 - 以轻量级方式处理快速查询,而不对数据进行任何额外的计算。
可以轻松地将CPU繁重的任务委托给基于JVM的专用组件(最好的是在JVM上)。通过使用消息代理和微服务很好地实现了这一点。
基于事件的体系结构,其中nodejs可以连接到像Cassandra或Mongodb这样的数据库,以及像Apache Spark这样的集群计算框架(不一定,但这取决于问题)来处理系统的CPU重量级部分。轻量级容器通过为每个组件提供良好的隔离运行时环境,为蛋糕增添了锦上添花。
这是迄今为止关于这个问题的结论。 我认为上面的建议有点消除了在java或其他基于JVM的解决方案下为cpu繁重的任务包装节点的需要。
答案 3 :(得分:0)
NodeJS基于以c ++编写的v8 javascript引擎。
因此可以在c ++中为NodeJS编写完全本机的插件。查看其中一些资源: