如果您有10000个并发用户,并且只有一个nodejs线程来处理所有这些请求,那么nodejs有什么好处呢?我知道处理将异步进行,但请求将被同步处理。那么,9999和10000用户是否需要等待nodejs接收到之前的所有请求,并为所有请求启动相应的非阻塞请求?这难道不使nodejs在大量并发请求到达服务器并且即使单个线程重载时也不能生成不同的线程时更慢吗?
发布于 2016-06-16 10:42:10
在较低的水平上,有相当多的参数将共同影响节点性能的拐点:
在更低的水平上,可能会有更多。简而言之,是节点将在负载的某个点达到拐点(饱和和性能下降),而不一定是在10K请求时达到拐点,而是取决于数据流、请求速率、系统资源、系统负载等。
理想情况下,您提出的生成新线程来处理请求的建议是有意义的,但是多线程的存在会在语言中造成大量新的语义,并在节点运行时造成大量额外负担,这将抵消它目前展示的优越性能。
一个更实用的解决方案是水平负载平衡。
希望这能有所帮助。
https://stackoverflow.com/questions/37856033
复制相似问题