我正试图为I/O繁重和CPU繁重的任务选择一种合适的web技术。NodeJs是处理大负载的完美选择,它也可以扩展。然而,我被cpu的沉重部分卡住了。是否有可能将另一种技术(例如Java)集成到节点中,以便让它在其他线程中运行我的算法,然后在节点中再次使用结果。有什么解决办法吗?任何其他建议都会很好。
发布于 2013-09-17 13:59:27
您可以使用NodeJS集成节点-java。
发布于 2016-07-27 22:00:43
正如前面的答案所提到的,您可以使用node,这是一个与Java对话的npm模块。您还可以使用J2V8,它将Node.js包装为Java库,并在Java中提供Node.js API。
发布于 2016-08-26 09:37:59
答案是lambda架构。
NodeJs本身很好--以轻量级的方式处理快速查询,而不对数据进行任何额外的计算。
CPU繁重的任务可以很容易地委托给基于JVM的专用组件(嗯,最著名的是JVM)。这是通过使用消息代理和微服务很好地实现的。
一种基于事件的体系结构,其中nodejs可以连接到诸如Cassandra或Mongodb之类的数据库,以及Apache之类的集群计算框架(但这不一定要取决于问题)来处理系统中cpu过多的部分。轻量级容器为每个组件提供了良好的独立运行时环境,从而为蛋糕添加了锦上添花。
到目前为止,这是我对这个问题的结论。我认为上面的建议消除了将节点封装在java或其他基于JVM的解决方案下的需要,以解决cpu繁重的任务。
https://stackoverflow.com/questions/18018236
复制相似问题