高并发 C++ Web-Server 服务器项目。
• 使用 Reactor 模型、非阻塞网络IO、边沿触发模式的 Epoll IO 多路复用提高并
发量
• 使用固定线程池模型,单个线程采用 One Loop Per Thread 设计
• 使用智能指针,使用 RAII 手法自动获取和归还数据库连接,减少连接建立释放
开销,减少内存泄漏
• 使用小根堆实现的定时器,定时释放超时的 HTTP 连接,结构简单清晰,代码
可读性高
• 使用生产者消费者模型,应用于线程池任务队列,实现对业务的异步处理,提
高系统吞吐量
• 基于有限状态机实现的 HTTP 请求头解析
• 异步日志的设计,采用背景线程收集需要写入日志的内容并写入日志
• 避免阻塞硬盘IO影响业务流程而设计的异步日志前后端交互 BlockingQueue
• 正在对日志模块进行代码重构,新的结构采用构造匿名对象后获取要写入的内
容,析构函数交付给 AsyncLog 模块。该模块采用多缓冲区定时 flush 的设计确
保日志丢失内容时间范围可控,以及降低磁盘 IO 频率及其带来的磁盘寻道的开
销,另外在 AsyncLog 模块对突发大量业务可能产生的写入日志阻塞致使程序爆
栈 segmentfault 的问题做了安全处理,保障了服务端的健壮性。
工作经历 :AUTOSAR 开发
足球比赛裁判运动信息收集系统
某汽车车灯信号适配
某款学习类 Android APP