项目简介
本项目是基于C++和epoll构建的高性能Web服务器,具备高效的HTTP请求处理能力。运用线程池、模拟Proactor模式、epoll边缘触发(ET)和EPOLLONESHOT等技术,保证服务器在高并发环境下稳定运行。同时,支持GET和POST请求,还实现了异步日志系统和定时器管理,优化了性能和资源利用。
项目的主要特性和功能
- 线程池:避免线程反复创建和销毁的开销,提升并发处理能力。
- 模拟Proactor模式:结合epoll与边缘触发(ET)模式,处理高并发请求。
- EPOLLONESHOT:确保每个socket连接在任意时刻仅由一个线程处理,防止资源竞争。
- 状态机解析HTTP请求:支持GET和POST请求以及长连接。
- 定时器管理:采用最小堆结构管理定时器,处理超时长连接。
- 异步日志系统:记录服务器运行状态,支持异步和同步日志写入。
- 线程同步互斥机制:封装互斥器、条件变量和信号量,保障线程安全。
- 内存管理:使用shared_ptr管理指针,避免内存泄漏。
- 压力测试:通过Webbench工具测试,在60M宽带下QPS可达6k。
安装使用步骤
- 编译服务器:
bash make server
- 启动服务器:
bash ./server <port>
其中<port>
为服务器监听的端口号。 - 访问服务器:
在浏览器中输入服务器的IP地址和端口号,例如:
http://<server_ip>:<port>
服务器将返回相应的HTTP响应。 - 压力测试: 使用Webbench工具对服务器进行压力测试,评估其在高并发环境下的性能表现。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】