node.js - NodeJS 集群和工作线程
问题描述
我正在为一个家庭项目做一些研究,我正在研究集群模块和工作线程。
我知道集群和工作线程之间的区别。
我的问题是:
在 NodeJS 中是否可以同时使用集群和工作线程?
解决方案
当您提到“工作线程”时,我猜您正在考虑工作线程模块。我做了一个明确的区分,因为 NodeJS 运行时默认带有 4 个工作线程。cluster (module) 和worker_threads并行工作应该不会有任何问题,因为集群为您提供了多个独立的 NodeJS 实例,例如多个 NodeJS 进程,它们有自己的线程,如前所述。使用上述worker_threads
模块产生更多工作线程会产生更多线程它们不是独立的(它们可以并且确实共享内存),如果您正在进行一些运算,这可能会很好,但它们都在单个 Node 进程下运行。进程可以使用 IPC 进行通信,Node 工作线程可以使用MessagePort
同一模块中的类进行通信。
因此,是的,你可以这样做,我最好的猜测是,在“监督树”的顶部,如果你让它们充当服务器,你会产生几个 Node进程(使用模块)来分配负载(cluster
不知道您的用例),然后对于每个进程,worker_threads
如果需要,您可以使用该模块生成额外的线程(以加快一些繁重的处理等)。
推荐阅读
- php - PHP:游戏创建2个随机数和运算符并询问答案
- spring - IntelliJIDEA EduTools Spring Boot Controller 看不到 html 文件
- typescript - 如何正确键入枚举条目数组?
- flutter - 在 Flutter App 中显示 PDF 或 PPT 文件
- ionic-framework - 我们如何在 Ionic5 中实现移动辅助功能(对讲)功能?
- kubernetes - kubernetes `--dry-run=client` 和 `--command` 以一种奇怪的方式依赖于命令的顺序
- javascript - 是否可以直接从 Request Multipart/form 读取 CSV 文件内容,而不使用 multer 将其上传到存储中?
- json - 如何修复 shell 脚本上的 JSON 错误?
- java - 如何使用外部配置初始化 kafka 流自定义分区器
- javascript - 在动态表中使用javascript自动计算年月差