> 技术文档 > 【C++项目】:仿 muduo 库 One-Thread-One-Loop 式并发服务器

【C++项目】:仿 muduo 库 One-Thread-One-Loop 式并发服务器

🌈 个人主页:Zfox_
🔥 系列专栏:C++从入门到精通

【C++项目】:仿 muduo 库 One-Thread-One-Loop 式并发服务器

目录

  • 🔥 前言
  • 一:🔥 项目储备知识
    • 🦋 HTTP 服务器
    • 🦋 Reactor 模型
      • 🎀 单 Reactor 单线程:单I/O多路复⽤+业务处理
      • 🎀 单 Reactor 多线程:单I/O多路复⽤+线程池(业务处理)
      • 🎀 多 Reactor 多线程:多I/O多路复⽤+线程池(业务处理)
    • 🦋 ⽬标定位:OneThreadOneLoop 主从 Reactor 模型⾼并发服务器
  • 二:🔥 功能模块划分
    • 🦋 SERVER 模块
      • 🎀 Buffer 模块
      • 🎀 Socket 模块:
      • 🎀 Channel 模块:
      • 🎀 Connection 模块
      • 🎀 Acceptor 模块
      • 🎀 TimerQueue 模块
      • 🎀 Poller 模块:
      • 🎀 EventLoop 模块
      • 🎀 TcpServer 模块
    • 🦋 模块分析
  • 三:🔥 项目前置知识技术点
    • 🦋 C++11 中的 bind
    • 🦋 简单的秒级定时任务实现
    • 🦋 时间轮的思想
    • 🦋 正则库的简单使用
    • 🦋 通用类型 any 类型的实现
    • 🦋 日志类实现
  • 四:🔥 SERVER 服务器模块实现
    • 🦋 Buffer 模块
      • 🎀 接收数据
      • 🎀 读取数据
      • 🎀 代码实现
    • 🦋 Socket 模块
    • 🦋 Channel 模块
    • 🦋 Poller 模块
    • 🦋 EventLoop 模块
      • 🎀 eventfd
      • 🎀 基本设计思路
      • 🎀 细节问题
      • 🎀 理解 Loop (核心)
        • 循环结构
        • 理解 Channel 和 Poller 和 Loop
        • 两种 Channel
    • 🦋 TimerQueue 模块
      • 🎀 定时器模块的整合
      • 🎀 TimeWheel 整合到 EventLoop
    • 🦋 Connection 模块
    • 🦋 Acceptor 模块
    • 🦋 LoopThread 模块
    • 🦋 LoopThreadPool 模块
    • 🦋 TcpServer 模块
  • 五:🔥 搭建一个简易的 echo 服务器
    • 🦋 逻辑图分析
  • 六:🔥 HTTP协议模块实现
    • 🦋 Util 模块
    • 🦋 HttpRequest 模块
    • 🦋 HTTPResponse 模块
    • 🦋 HttpContext 模块
    • 🦋 HttpServer 模块
    • 🦋 HttpServer 模块
  • 七:🔥 服务器功能测试 + 性能测试
    • 🦋 基于 HttpServer 搭建 HTTP 服务器:
    • 🦋 长连接连续请求测试
    • 🦋 超时连接释放测试
    • 🦋 错误请求测试
    • 🦋 业务处理超时测试
    • 🦋 同时多条请求测试
    • 🦋 大文件传输测试
    • 🦋 服务器性能压力测试
  • 八:🔥 共勉

🔥 前言

🧑‍💻 通过咱们实现的⾼并发服务器组件,可以简洁快速的完成⼀个⾼性能的服务器搭建。

并且,通过组件内提供的不同应⽤层协议⽀持,也可以快速完成⼀个⾼性能应⽤服务器的搭建(当前为了便于项⽬的演⽰,项⽬中提供 HTTP 协议组件的⽀持)。

在这⾥,要明确的是咱们要实现的是⼀个⾼并发服务器组件,因此当前的项⽬中并不包含实际的业务内容。

代码仓库: