我是 node.js 的新手,仍然试图理解它背后的哲学。据我所知,node.js 仅在一个进程中运行,而 php 为每个请求打开一个进程\线程。虽然您可以说 Node 对于 i/o 是“非阻塞”的,但它对于请求是阻塞的(请求堆积起来,因为每个新请求都没有新线程)并且理论上如果您编写了一个 node.js 应用程序这并不能快速处理您遇到麻烦的每个请求。
我的问题是 - 我如何判断某个请求的某个处理是否花费了太长时间,以至于它会阻止所有其他请求太长时间并阻碍我的应用程序的性能?
我知道服务器上的所有“繁重”操作(数据库查询、文件系统搜索)都是由回调完成的,因此无法阻止 node.js 。但是,如果所有其他由服务器同步完成以处理请求的操作只需要太长时间怎么办?
例如 - 服务器需要在响应中写入大量 html。那会发生什么?
节点程序员如何知道他是否对某个请求做了太多(以阻塞方式),是经验、直觉还是有关于如何做的明确指南?