【C++项目】:仿 muduo 库 One-Thread-One-Loop 式并发服务器
🌈 个人主页:Zfox_
🔥 系列专栏:C++从入门到精通
目录
- 🔥 前言
- 一:🔥 项目储备知识
-
- 🦋 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 协议组件的⽀持)。
在这⾥,要明确的是咱们要实现的是⼀个⾼并发服务器组件,因此当前的项⽬中并不包含实际的业务内容。
代码仓库: