用C++实现的高性能服务器,经过webbenchh压力测试可以实现上万的QPS
- 使用正则解析HTTP请求报文,可以处理静态资源请求
- 用最小堆实现的定时器,支持HTTP长连接以及超时断开
- 使用Epoll ET、EPOLLONESHOT,非阻塞IO
- 实现线程池,主线程响应IO事件,工作线程处理IO事件,实现Reactor反应器模式
- 实现自动增长的动态缓冲区,作为接收与发送的缓冲区
- 实现数据库连接池,提高对数据库操作的性能
- 通过访问数据库操作实现用户注册、登录功能
- 实现异步日志系统,记录服务器运行状态
- Linux
- C++14
- MySql
.
├── code 源代码
│ ├── buffer
│ ├── config
│ ├── http
│ ├── log
│ ├── timer
│ ├── pool
│ ├── server
│ └── main.cpp
├── test 单元测试
│ ├── Makefile
│ └── test.cpp
├── resources 静态资源
│ ├── index.html
│ ├── image
│ ├── video
│ ├── js
│ └── css
├── bin 可执行文件
│ └── server
├── log 日志文件
├── webbench-1.5 压力测试
├── build
│ └── Makefile
├── Makefile
├── LICENSE
└── readme.md
make
./bin/server
cd test
make
./test
./webbench-1.5/webbench -c 10000 -t 10 http://ip:port/
- 测试环境: Ubuntu:19.10 cpu:i5-8400 内存:8G
- QPS 9000~10000
- config配置
- 完善单元测试
- 实现循环缓冲区
- HTTPS加密(Cryto++库)
- 登录 cookie/session