当前位置: 华文问答 > 游戏

请教一下关于网游服务器网络层IO多线程效率问题?

2014-04-07游戏

今天我们聊一下高并发下的网络 IO 模型

高并发即我们所说的 C10K(一个 server 服务 1w 个 client),C10M,写出高并发的程序相信是每个后端程序员的追求,高并发架构其实有一些很通用的架构设计,如无锁化,缓存等,今天我们主要研究下高并发下的网络 IO 模型设计,我们知道不管是 Nginx,还是 Redis,Kafka,RocketMQ 等中间件,都能轻松支持非常高的 QPS,其实它们背后的网络 IO 模型设计理念都是一致的,所以了解这一块对我们了解设计出高并发的网络 IO 框架具体重要意义,本文将会从以下几个方面来循序渐近地向大家介绍如何设计出一个高并发的网络 IO 框架

  • 传统网络 IO 模型的缺陷
  • 针对传统网络 IO 模型缺陷的改进
  • 多线程/多进程
  • 阻塞改为非阻塞
  • IO 多路复用
  • Reactor 的几种模型介绍
  • 传统网络 IO 模型的缺陷

    我们首先来看下传统网络 IO 模型有哪些缺陷,主要看它们的阻塞点有哪些。我们用一张图来看下客户端和服务端的基于 TCP 的通信流程

    服务