为学习C++网络编程所编写的,基于Reactor模式开发的Web服务器,可以解析GET请求,处理静态资源。
采取单Reactor模式,一个主线程多个工作线程,主线程负责监听和接受链接,工作线程负责处理请求和读写任务。当fd有可读/写事件时,主线程将可调用对象放入工作队列,工作线程通过竞争条件获取任务执行。(参照半同步半反应堆模式)
- 使用 线程池 + epoll水平触发 +Reactor事件处理模式的并发模型
- 使用状态机解析HTTP请求,支持解析GET请求
- 支持HTTP长连接,使用最小堆管理的定时器处理超时链接
- 经Webbench压力测试验证可以实现上万的并发链接的数据交换