最近应聘百度,百度一大神电话面试,问了一大堆问题,最终我自我感觉砸在了fast cgi上,因为从来没研究过这个东西,于是百度学习了下。
看了很多,最终自己这么理解:
相对于传统的CGI模式,
mod_php 的优势就是用多线程模式来应对请求,每次执行完后,线程消失,所有资源消失。存在的问题是其中一个线程可能会搞死主进程,造成server宕机。且大量逻辑计算会影响主进程的相应速度;
fastcgi的优势是主server进程通过socket与cgi管理器通信,cgi管理器从cgi进程池中安排其中一个cgi进程进行处理,处理完毕后这个cgi进程回收资源但是不退出,等待下一个处理。这样即使cgi进程崩溃,也完全不会影响server进程。且server的计算更加单纯,只负责收发数据。相当于是一种负载均衡解决方案,可以支撑大量访问。但是我觉得存在的问题是因为cgi进程不会退出,可能其稳定性会存在问题,比如回收不彻底等,会造成其崩溃,所以虽然主server进程不挂,但是处理某一个人的计算的时候,可能会针对这个请求挂掉,所以稳定性并不是完全可靠。
请大家指教啊!!!