一些背景:,我目前正在一个运行在Azure服务器上的网站上工作。它本质上是一个奇怪的平均堆栈,因为MongoDB部分被DocumentDB取代,这是Azure的原生NoSql DB。
站点的输出需要大量的恒数运算,而且随着站点的增长,JavaScript被证明太慢了。所以,
一些附加信息:
请不要建议使用C#代替Java。我知道它已经很好地集成到Azure中了,但是我没有使用它,也没有时间去学习。
编辑:问一个更好的问题。
发布于 2015-09-07 06:39:23
NodeJS使用事件驱动的单进程/线程模型。它不适用于CPU密度的计算。当您有一个数字处理器花费大量的cpu时间在一个事件请求,事件循环的节点将被阻塞。
因此,如果您需要进行CPU密度计算,我认为您可以使用Node 'child_process.spawn‘作为工作人员发送子进程。您可以参考process.html。
对于NodeJS来说,有一些简单的库比API "child_process“做得更好。
如果您只需要后台作业,我建议您在Azure上使用WebJob & ServiceBus。请参考https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/和https://azure.microsoft.com/en-us/documentation/articles/service-bus-nodejs-how-to-use-queues/。
当然,您可以使用Java( Java上的WebJob )作为计算工作,也可以在Azure上使用ServiceBus与NodeJS通信。
如果您需要大量的数字计算,我认为使用NumPy的Python可能是最好的语言选择。
如果您需要一些实时性能要求,则需要根据我的经验添加更多实例来扩展节点服务。
诚挚的问候。
https://stackoverflow.com/questions/32389015
复制相似问题