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