TKeed WebServer
TKeed is a high performance HTTP WebServer uses the Reactor model. Code normative and functional scalability are close to the industry level. The project will be updated until feature have been completed. Have a fun. SYSU, TeeKee.
Dev Document
Part Ⅰ | Part Ⅱ | Part Ⅲ | Part Ⅳ | Part Ⅴ | Part Ⅵ | Part Ⅷ | Part Ⅸ | Part Ⅹ |
---|---|---|---|---|---|---|---|---|
项目目的 | 并发模型 | 核心结构 | 整体架构 | 主要函数 | 遇到的困难 | 测试及改进 | 背景知识 | 使用教程 |
Dev Environment
Dev Tool
-
操作系统:Ubuntu 16.04
-
编辑器:Sublime + Vim
-
编译器:gcc 5.4.0
-
单元测试:
gtest -
版本控制:git
-
代码结构:Understand + callgraph
-
集成环境:Clion
Other
Timeline
Now
-
v1.0已经完成,本地已调试通过。提交到GitHub上的代码会由Travis自动构建。
特性:
-
添加Timer定时器,定时回调handler处理超时请求
-
高效的小根堆结构
-
惰性删除方式
-
-
实现了HTTP长连接传输数据
-
非阻塞I/O
-
epoll边缘触发模式(ET)
-
-
线程池操作及其同步互斥管理
-
调度选项
-
队列式FIFO调度模式
-
加入优先级的优先队列 (+)
-
-
-
使用状态机解析HTTP协议,非简单字符串匹配方式解析请求
-
-
v1.1修改了CPU负载较高问题,修改后1000并发各线程(4worker)CPU使用率10%左右。
Feature
-
v2.0实现Json解释器解析配置
-
v3.0实现FastCGI(功能扩展)
-
v4.0实现服务器缓存(性能加速)
-
v5.0实现反向代理(安全性及负载均衡)