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模型在高并发场景表现更好

相关推荐
2601_949146533 小时前
C语言语音通知接口接入教程:如何使用C语言直接调用语音预警API
c语言·开发语言
在路上看风景3 小时前
19. 成员初始化列表和初始化对象
c++
zmzb01034 小时前
C++课后习题训练记录Day98
开发语言·c++
wdfk_prog4 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
念风零壹4 小时前
C++ 内存避坑指南:如何用移动语义和智能指针解决“深拷贝”与“内存泄漏”
c++
盟接之桥4 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
忆~遂愿5 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
湘-枫叶情缘5 小时前
1990:种下那棵不落叶的树-第6集 圆明园的对话
linux·系统架构
孞㐑¥5 小时前
算法——BFS
开发语言·c++·经验分享·笔记·算法
知南x5 小时前
【Ascend C系列课程(高级)】(1) 算子调试+调优
c语言·开发语言