处理数百万请求/秒:负载均衡器(主服务器线程)如何工作

时间:2015-11-25 16:38:27

标签: multithreading concurrency

会发生什么: 如果我编写一个服务器应用程序,该应用程序支持数百万个线程的线程池,并且每秒可以获得数百万个请求

我一直致力于开发Web服务。 Web服务部署在具有前端负载平衡器的1000台计算机上。负载均衡器的工作是在实际处理Web请求的服务器之间分配流量。 所以我的问题是,由于在负载均衡器内部运行的进程本身是单线程的,以侦听端口上的Web请求,它如何处理每秒接受数百万个请求。负载均衡器可能忙于委派任务,那么在那个时刻的传入请求会发生什么?

在我看来,所有客户端都不会被处理,因为只有一个请求处理程序线程将传入的请求传递给线程池

这样就不会有多线程服务器工作。 我想知道facebook / amazon每秒如何处理数百万个请求。

2 个答案:

答案 0 :(得分:0)

你说得对,它不行。单个计算机可以处理多少是有限的,这与它运行的线程数无关。

亚马逊和Facebook等处理它的方式是在全世界分布数百或数千台服务器,然后将请求传递给各种服务器。这是一个很大的主题,但如果您想了解更多,我建议您阅读分布式计算,如果您有具体问题,请回来。

答案 1 :(得分:0)

通过编辑,问题更有意义。每秒分发数百万个请求并不难。 分布操作应该在几十纳秒的粘度中稍微进行,并且仅仅包括将接收到的套接字推入队列中。没什么大不了的。

一旦完成,平衡器就可以接受下一个请求了。