第 7 章 高性能服务结构设计
有不少服务器开发新人总是喜欢问如何学习高性能服务器开发这一类问题,对于这类问题,我通常有一种哭笑不得的感觉。平心而论,“高性能服务器”开发从来都不是刻意学来的,不同的业务场景对服务的性能要求不一样。从单个服务演化到支持分布式的一组服务,是在解决实际业务问题时不断演化、改进而来的。所以,新手在学习服务器开发,最正确的方式应该是先尽量把单机服务的性能做到极致或者最优,再纵向扩展,学习多点、分布式等知识。
那么何为“高性能高并发”呢?从技术的角度来说,所谓高性能就是服务器能流畅地处理各个客户端的连接并尽量低延迟地应答客户端的请求;所谓高并发,不仅指的是服务器可以同时支持多的客户端连接,而且服务器能流畅地处理连接期间与这些客户端不间断有数据来往。网络上经常有各种网络库号称单个服务能同时支持百万甚至千万的并发,然后我实际去看了下,结果发现只是能同时支持很多的连接而已。如果一个服务器能单纯地接受n个连接(n可能很大),但是不能流畅地处理与这些连接之间的数据来往也没有任何意义,这种服务器框架只是“玩具型”的,对实际生产应用没有任何意义。
那如何将单机服务的性能做到最优呢?首先高性能服务肯定依赖于服务所在的操作系统硬件(内存、CPU、磁盘、网络带宽等),本书不讨论这些硬件层面上的问题,单纯地从软件设计层面上进行解读。对于特定的编程语言,除了编程语言层面上的,剩下的就是这个服务的结构。那么一个良好的服务器程序,其程序结构应该如何设计呢?本章将回答这个问题。
本章目录
上次更新: 2024/07/08, 00:14:14