多线程网络服务模型

/**
 * 谨献给Yoyo
 *
 * 原文出处:https://www.toptal.com/software/guide-to-multi-processing-network-server-models
 * @author dogstar.huang <chanzonghuang@gmail.com> 2016-04-02
 */

作为多年来一直在编写高性能网络代码的人(我的博士论文主题是适配多核系统分布式应用的高速缓存服务),现在我看到了很多完全不知道或忽略讨论网络服务模型基本原理的教程。因此,本文旨在希望能为大家提供有用的概览以及网络服务模型的比较,以揭开编写高性能网络代码的神秘面纱。

本文主要针对“系统程序员”,即与他们的应用程序的底层细节工作、实现网络服务代码的后端开发。这通常是在C++C来完成,虽然时下大部分现代语言和框架通过各种级别的效率提供了体面的底层功能。

既然通过增加内核更容易扩展CPU,我会把这作为常识,而本质却是调整软件以便最大化使用这些内核。因此,问题就变成如何在能在多个CPU上并行执行的线程(或进程)中分区软件。


继续阅读»»»