Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 有必要对我的nodejsapi实现多线程吗?_Node.js_Multithreading_Express - Fatal编程技术网

Node.js 有必要对我的nodejsapi实现多线程吗?

Node.js 有必要对我的nodejsapi实现多线程吗?,node.js,multithreading,express,Node.js,Multithreading,Express,我正在构建一个ExpressJSAPI,它将同时为数百万个请求提供服务。然而,这些任务通常不是很复杂,执行起来也不是很快,没有什么是CPU密集型或阻塞型的 所以我的问题是:我是否仍应该在ExpressJSAPI中实现多线程?我建议确定API可以维护的级别。如果您的API不是CPU密集型的,但它们仍然不是幂等的,这意味着接收并发请求会使您的系统不稳定,那么实现多线程是没有意义的,因为它会增加系统的稳定性 尽管如此,考虑到并发请求由具有单个主进程实现的API很好地处理,添加多线程(假设为PM2)肯定

我正在构建一个ExpressJSAPI,它将同时为数百万个请求提供服务。然而,这些任务通常不是很复杂,执行起来也不是很快,没有什么是CPU密集型或阻塞型的


所以我的问题是:我是否仍应该在ExpressJSAPI中实现多线程?

我建议确定API可以维护的级别。如果您的API不是CPU密集型的,但它们仍然不是幂等的,这意味着接收并发请求会使您的系统不稳定,那么实现多线程是没有意义的,因为它会增加系统的稳定性

尽管如此,考虑到并发请求由具有单个主进程实现的API很好地处理,添加多线程(假设为PM2)肯定会提高性能

请注意,当我们讨论添加多线程时,它意味着多个主/父线程,这些线程是使用各自的多个cpu核(实现的东西)而不是多个子进程的进程

这是一本很好的读物,可以探索在数据库级别处理并发性的更多信息:

我建议,确定API可以维持的级别。如果您的API不是CPU密集型的,但它们仍然不是幂等的,这意味着接收并发请求会使您的系统不稳定,那么实现多线程是没有意义的,因为它会增加系统的稳定性

尽管如此,考虑到并发请求由具有单个主进程实现的API很好地处理,添加多线程(假设为PM2)肯定会提高性能

请注意,当我们讨论添加多线程时,它意味着多个主/父线程,这些线程是使用各自的多个cpu核(实现的东西)而不是多个子进程的进程

这是一本很好的读物,可以探索在数据库级别处理并发性的更多信息:
我建议不要。Javascript已经使用多线程来支持is非阻塞IO(事件循环)。因此,如果您有许多小任务,JS引擎应该像不阻塞一样完成这些任务

但是,如果您需要处理许多请求,您可能需要研究如何扩展NodeJS应用程序


通常,您会发现人们使用具有业务流程层的Docker在负载平衡器后面部署应用程序的多个实例。

我不建议这样做。Javascript已经使用多线程来支持is非阻塞IO(事件循环)。因此,如果您有许多小任务,JS引擎应该像不阻塞一样完成这些任务

但是,如果您需要处理许多请求,您可能需要研究如何扩展NodeJS应用程序

通常,您会发现人们正在使用具有业务流程层的Docker在负载平衡器后面部署应用程序的多个实例