关于网络编程,Stenvens先生的UNP3自然是必读的,而且在30章还介绍了各种server模型。但是这本书毕竟有点年代了(如果stenvens还在世该多好),有些想法免不了的会显得陈旧,而且因为整本书面向UNIX,一些Linux在网络方面的新特性没有涉及(比如epoll,零拷贝等)。所以光看书是不够的,必要的时候还得借助google。
下面我就把这段时间搜集到的关于高效服务器设计、编写的一些资源汇总一下,方便跟我一样需要的人
PS:所有资料都是基于Linux/UNIX的(毕竟没几个人会用windows来写server)
文章:
1. The C10K Problem : 传统的UNIX多进程模型在客户超过10K(即1万)的时候会遇到什么问题,以及解决方案。 英文原版
2. 搜狗实验室关于C10K的介绍:关于如何用epoll解决C10K问题
4. 如何编写高性能服务器:一个网易的游戏架构师写的,很全面。 上篇 下篇
5. epoll相关资料整理:linux下实现高性能服务器的必备利器
6. Linux中的零拷贝技术:linux内核如何避免数据在内核缓冲区于用户缓冲区之间的拷贝从而减少CPU在传输数据时的计算量 上篇 下篇
7. Linux下高性能的系统调用:sendfile,splice,tee
8. sendfile函数详解
9. sendfile() 源码:更好地理解sendfile是怎么实现的。
相关BLOG:
1. 杨健的BLOG:此人对服务器设计、各种IO模型很有研究2. 那谁的技术博客:花大力气剖析了nginx和lighttpd的部分源码,膜拜。nginx和lighttpd都是运动epoll实现高并发的典型实例,有能力看看源码的话,能力会有质的提高。