Stu*_*low 4 javascript node.js express
我正在 Docker 中创建一个基于 Nodejs、express 和 mongodb 的 API。
Docker 目前正在具有 512MB RAM 和 1 个 CPU 核心的 DigitalOcean Droplet 中运行。
我读过,nodejs 是每个 cpu 核心的单线程,并且使用称为“集群”的东西可以使其成为假多线程,在每个核心上启动一个应用程序。我确实只有 1 个核心,所以..这是否意味着我完蛋了?
如果我的 API 中有一个端点,假设需要 5 秒才能提供响应...这是否意味着在这 5 秒内我无法处理任何其他请求?
我确实只有 1 个核心,所以..这是否意味着我完蛋了?
这仅意味着您的实例一次只能执行一件事。由于上下文切换,它仍然可以实现多个线程同时运行。这就是现代计算机如何能够并行运行几千个线程,即使它们只有几个核心。所以不,你没有被搞砸。
现在 javascript 的一个很酷的事情是大多数 API 调用或 IO 不会阻塞 javascript 主线程。Nodejs 会为你生成另一个线程,这发生在后台,因此你不必处理线程之类的东西,只需编写你的代码,nodejs 就会完成它的工作。
如果我的 API 中有一个端点,假设需要 5 秒才能提供响应...这是否意味着在这 5 秒内我无法处理任何其他请求?
这取决于您想做的事情。如果您正在进行繁重的计算(阻塞),那么是的,您应该为此生成另一个线程。如果是读取文件、请求数据库等,那不是问题,因为它是非阻塞的,并且nodejs可以同时响应其他请求。
| 归档时间: |
|
| 查看次数: |
1328 次 |
| 最近记录: |