gpt4 book ai didi

multithreading - 多核系统中的 NodeJS

转载 作者:太空宇宙 更新时间:2023-11-03 22:47:37 24 4
gpt4 key购买 nike

“Node.js 仅限于单线程”。当我们在多核系统中部署时,nodeJS 将如何 react ?会提高性能吗?

最佳答案

Node.js V8 引擎中运行的 JavaScript 是单线程的,但底层的 libuv 多平台支持库是多线程的,这些线程将由操作系统根据其调度算法分布在 CPU 核心上,因此,当您的 JavaScript 应用程序在顶层异步(且单线程)运行时,您仍然可以从幕后的多核中受益。

正如其他人所提到的,Node.js 集群模块是在应用程序 (JavaScript V8) 级别利用多核并发的绝佳方法,并且由于 Express 是集群感知的,因此您可以让多个工作进程执行并发服务器逻辑,无需为每个进程使用唯一的监听端口。令人印象深刻。

正如其他人所提到的,您将需要 Redis 或同等产品来在集群工作进程之间共享数据。您还需要一个支持集群的日志记录工具,以便集群主进程和所有工作进程可以将日志记录到单个共享日志文件中。 Node log4node 模块在这里是一个不错的选择,它与 logrotate 一起使用。

典型的 Web 示例显示使用运行时检测到的核心数作为要 fork 的集群工作进程数,但我更喜欢将其作为 config.yaml 文件中的配置选项,以便我可以调整运行的工作进程数根据需要主要 JavaScript 应用程序。

关于multithreading - 多核系统中的 NodeJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22096067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com