1. C++ WebServer项目分享

前言

把之前自己学习过程中做的几个小项目拿出来写写博客就当复习啦,同时拿出来也希望能在大家的反馈能有进一步的改进,比如增加新的功能之类的,或者哪里写的不好,讲的不不清楚。

对于每个项目,把博客分文这么几项:

1. 项目简介:(项目的大致流程/简历里怎么写)

2. 项目实现:(具体讲讲实现思路,以及可选方案)

3. 面试整理:结合这个项目面试可以说什么,有哪些可能会问的问题

如果你也想把这个项目写在简历上,那么关注1和3就好了,2大概知道怎么做的就行;如果你正好被相同的技术栈困扰,也希望我的博客能带给你一些思路。

WebServer项目简介

WebServer可以说是c++人手一个的项目了,做这个项目主要是为了提升一下自己对c++的了解程度,作为嵌入式选手c++水平基本就是(c with class), 同时对Linux的文件IO和Socket编程的认知也提升一下。

项目地址:C++ WebServer

核心就是muduo库的主丛Reactor架构,然后自己结合一些WebServer做了一个简易实现。

项目内容

该项目是主从reactor加线程池的模式,IO处理使⽤了⾮阻塞IO和IO多路复⽤技术,具备处理多个客户端的http请求的能力。

具体而言,由主Reactor进行监听,当监听到客户端的连接后就把该链接分配给某个子Reactor,当客户端产生可读可写事件后由对应子Reactor进行处理,主Reactor和子Reactor间采用eventfd + 回调函数的方式进行交互。使⽤webbench创建1000个进程对服务器进⾏60s并发请求,测试结果表明,对于短连接的QPS为2w+,相较于单Reactor模型在高并发场景表现更好

相关推荐
程芯带你刷C语言简单算法题10 小时前
Day33~实现一个算法来识别一个字符串。
c语言·算法·c
仰泳的熊猫10 小时前
1154 Vertex Coloring
数据结构·c++·算法·pat考试
j_xxx404_10 小时前
Linux:版本控制器Git(第一章)|历史|理解Git|相关git操作|提交冲突解决
linux·运维·git·ai
StudyWinter10 小时前
【c++】thread总结
开发语言·c++·算法
@小白鸽10 小时前
匿名函数lambda
c++·匿名函数
Robot侠10 小时前
ROS1从入门到精通 1 :ROS1简介与环境搭建(Ubuntu 20.04 + Noetic完整指南)
linux·ubuntu·ros·机器人操作系统
饕餮怪程序猿10 小时前
贪心算法经典应用:活动选择问题(C++实现)
c++·算法·贪心算法
暗然而日章10 小时前
C++基础:Stanford CS106L学习笔记 15 RAII&智能指针&构建C++工程
c++·笔记·学习
YYDS31410 小时前
次小生成树
c++·算法·深度优先·图论·lca最近公共祖先·次小生成树
xu_yule10 小时前
算法基础(区间DP)
数据结构·c++·算法·动态规划·区间dp