文章目录

  • Love 6's C++ High-Performance WebServer(这一路想说的话)
    • 1、全流程实现博客链接
    • 2、源码仓库链接

Love 6’s C++ High-Performance WebServer(这一路想说的话)


这个 从零自制高性能多线程的WebServer博客系列呢 刚开始我写之初 其实也就是想记录一下 一个linux后端开发者 以此作为 网络编程的起点 以及多线程编程的起点的博客记录而已

因为刚开始 对于很多后台开发的前辈啊 所给出的后端学习的路啊 就比如写一个WebServer 其实这个项目就个人而言 真的肯定是 作为后台开发最好的入手的一个项目了 这个WebServer 不是写一个 就只能支持HTTP协议的服务器 而是从零开始写一个能够具有超级高的复用性的网络库 以此的基础上来实现一个高性能的HTTP服务器

记录之初 只是刚开始学习的时候太迷茫了 不知道从哪里入手 从什么地方开始 从哪里作为起点 都不知道… 在网上搜寻良久 也没有找到解决办法 我相信如果有之后想从事后台开发的初学者的话 又刚好想写一个这样类似的项目的话 看到有一位在这条路已经走过一遍的前者 把自己的学习轨迹记录下来 我相信还是会走更少的弯路的

本项目 所基于的书籍 最主要是两本
《Linux高性能服务器编程》----(游双)(现在快绝版了)

《Linux多线程服务器编程》使用muduo C++网络库 ---- 陈硕

本项目 所平时参考的网络库的源码 是muduo 网络库 也就是陈硕大佬所写的网络库 耦合性非常低 代码没有一点冗杂 相当精干
项目的网络库 底层实现逻辑 是基于muduo网络库的实现逻辑 以此为基础上 借鉴实现的网络库

大概muduo库源码 我应该是会看好几遍的 然后书籍的话 第一本是入门 相当好的入门书籍 没有第一本书籍所做的知识铺垫 模型铺垫 我相信我在阅读第二本书 muduo源码 书籍中的实现模型 相信会是相当相当吃力的

我发现 网络上面 对于一个从零实现WebServer 那种边学习边记录的博客太少 花时间写下这一系列博客 也算是有些许意义吧

–2022/3/26 正在写第六篇系列博客时 心中有感而发所写 13:23 笔者留


写到现在目前第十五篇 目前也就是今天晚上就可以把 这个项目最后一个功能 日志库给完结了 想到现在一路走来 不过也就接近40天的时间 尽管写到现在 也有些许疲倦 写这个项目也没有像上面写第六篇 或者写第一篇 《万丈高楼平地起…》那样有动力 但仔细想想 也属实不易

这一路走来 遇到了各种形形色色的问题 自己也在其中 不断地巩固自己的一些薄弱的编程基础 也学习到了很多新的实践的工具 自己对于稍微大型一点的项目编程 也有了更多的经验了

如果把之前的Tiny_OS Tiny_Regex都不算做正式项目的话(Tiny_OS应该还是算的)那这个这个High-Profomance WebServer就算作第一个我的正式项目了
其中有过开心喜悦 也有过困顿迷惑 有忽然发现解决棘手问题的方法的那种欢呼雀跃 也有因为一个小问题连续苦闷五天的难过时间

总之还是坚持下来了 可能在编写这段话的时候 再过个几天就要完结这个项目了 我也要进入下一个阶段了 哈哈 希望早点完结吧

–2022/4/19 正在写第十五篇系列博客 18:41留


这是最后我对这个项目 也是算是对我启蒙意义最重的一个项目 留下的可能是最后一段话了
我在这个项目 开始于3/15 今天是4/24 已经过去了45天了
原本我的计划是在一个月内完成这个项目 显然现在发现是不行的 除非之前就做过类似的项目

我在这个项目中 收获了太多太多 这个项目我认为 对于后台开发的同学 应该算是必做项目 因为可以收获的太多太多了
在真的这个项目要结束时 之前总觉得有好多好多话想说 现在却一句都说不出了

最后给一点意见吧 早点使用Git 在这个项目多去用用一些小工具 多去探索一些平时根本没有用上的Tool 尽量自己尝试去解决问题 尤其是自己编写的东西出现了问题 遇到困难与挫折 永远保持一颗坚持下去的心 不要放弃 保持学习 Keep Learning 当你学的东西越多的时候 你会发现 你不会的东西也越多

stay hungry stay humble
祝各位 我们江湖再见~
还是用这个可爱的表情结束我们的文章吧ヾ( ̄▽ ̄)Bye~Bye~

2022/4/24 18:48留


1、全流程实现博客链接


友情提示:
博客中有部分代码编译时用的是g++-9.x 到后面的时候才更换回了低版本g++-4.8 对于低版本编译器更友好 但并无大碍 如果在复制代码时 编译出现问题是由于编译器版本过低 无法识别的话 稍加修改代码即可

从零开始自制实现WebServer(一)---- 万丈高楼平地起 步子得一步一步慢慢走
从零开始自制实现WebServer(二)---- 勿在浮沙筑高层 摸谈初试进程/线程池与高效并发模型
从零开始自制实现WebServer(三)---- 华山论剑剑指线程池 大刀阔斧终开始阅读源码
从零开始自制实现WebServer(四)---- 长望漫漫路觉应先积跬步 不论精致粗糙先砌小砖小瓦
从零开始自制实现WebServer(五)---- 浅沿芳草鲜花小路静心踱步 拨云见雾终见多线程ThreadPool
从零开始自制实现WebServer(六)---- 跌跌撞撞奔向HTTP状态机 学习途中拾慧纠正过往细节偏差
从零开始自制实现WebServer(七)---- 进入首次压力测试开始调优 休整不牢地基开始大整改
从零开始自制实现WebServer(八)---- 花费两天解决性能瓶颈问题 介绍一路调试历程以及推荐各种好用的工具
从零开始自制实现WebServer(九)---- 目前总览代码如下 得继续脚步前行
从零开始自制实现WebServer(十)---- 费时五天研究性能瓶颈 对整个服务器代码大改造 最后发现gcc优化竟是最终问题
从零开始自制实现WebServer(十一)---- 花费数天完善代码寻找瓶颈 修修改改代码初具规模 罗列目前全部代码
从零开始自制实现WebServer(十二)---- 剑指定时器小根堆处理 给EventLoop定时任务处理一个温暖的家
从零开始自制实现WebServer(十三)---- 定时器实现踢掉服务器空闲连接功能 让服务器不再被长连接强行霸占
从零开始自制实现WebServer(十四)---- 终最后迈向日志库 解决流输出重载前端基本框架搭建 为异步日记库做好准备
从零开始自制实现WebServer(十五)---- 日志库部分完结啦 实用小件DOUBLE-BUFFERING优化异步写入性能
从零开始自制实现WebServer(十六)---- 学习新工具CMake自动编写MakeFile 分门别类整理源文件心情愉悦
从零开始自制实现WebServer(十七)---- 重新阅读Muduo服务器编程书籍 做最后的小改小动 项目终究要迎来终声了
从零开始自制实现WebServer(十八)---- 对服务器做最后的压力测试 WebBench压测小工具 项目迎来终章
从零开始自制实现WebServer(十九)---- 正式系统的学习一下Git 捣鼓捣鼓github以及一些其他的小组件
从零开始自制实现WebServer(二十)---- C++ High-Performance WebServer源码实现(Util核心代码部分)
从零开始自制实现WebServer(二十)---- C++ High-Performance WebServer源码实现(Base核心代码部分)
从零开始自制实现WebServer(二十)---- C++ High-Performance WebServer源码实现(Http核心代码部分)
从零开始自制实现WebServer(二十)---- C++ High-Performance WebServer源码实现(Timer核心代码部分)
从零开始自制实现WebServer(二十)---- C++ High-Performance WebServer源码实现(Logging核心代码部分)


2、源码仓库链接


GITHUB源码仓库链接:Love 6’s Github 源码仓库
C++ High-Performance WebServer Github链接:Love 6’s C++ High-Performance WebServer

最后项目代码(博客链接)
从零开始自制实现WebServer(二十)---- C++ High-Performance WebServer源码实现(Util核心代码部分)
从零开始自制实现WebServer(二十)---- C++ High-Performance WebServer源码实现(Base核心代码部分)
从零开始自制实现WebServer(二十)---- C++ High-Performance WebServer源码实现(Http核心代码部分)
从零开始自制实现WebServer(二十)---- C++ High-Performance WebServer源码实现(Timer核心代码部分)
从零开始自制实现WebServer(二十)---- C++ High-Performance WebServer源码实现(Logging核心代码部分)

从零开始自制实现C++ High-Performance WebServer 全流程记录相关推荐

  1. unreal ue4 PixelStreaming 局域网及公有云部署全流程记录

    PixelStreaming 局域网及公有云部署全流程记录 发表于 2020-04-10 |  更新于: 2020-04-20 |  分类于 Unreal Engine |  717 写在前面 本篇是 ...

  2. 从零开始自制实现正则引擎 全流程记录

    文章目录 前引 Regex_Engine 1.0 1.全流程实现博客链接 2.源码仓库链接 前引 笔者在完成 正则引擎初版 如果算上有效时间的话 大概是花了一周的时间就完成 只包括了 最基础的正则引擎 ...

  3. 《操作系统真象还原》从零开始自制操作系统 全流程记录

    文章目录 前引 章节博客链接 实现源码链接 前引 这本<操作系统真象还原>里面一共有十五个章节 大约760页 这些系列博客也是我在做完哈工大操作系统Lab之后 觉得还是有些朦朦胧胧 毅然决 ...

  4. 从零开始,申请开通微信小程序全流程

    本系列文章适合三类同学:1.希望学习小程序开发:2.希望无代码.低代码拥有自己的小程序:3.快速搭建小程序交作业.交毕设的大学生 本系列文章将推出配套桌面端软件,配合软件,可实现傻瓜式开发小程序,请有 ...

  5. CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-8CDH5安装和集群配置

    Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了.  准备文件 从 http://archive.cloudera.com/cdh5/parcels ...

  6. 利用python实现深度学习生成对抗样本模型,为任一图片加扰动并恢复原像素的全流程记录

    利用python实现深度学习生成对抗样本,为任一图片加扰动并恢复原像素 一.前言 (一)什么是深度学习 (二)什么是样本模型 (三)什么是对抗样本 1.对抗的目的 2.谁来对抗? 3.对抗的敌人是谁? ...

  7. CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-1虚拟机安装及环境初始化

    1.软件准备: VMware-workstation-full-14.1.2-8497320.exe CentOS-7-x86_64-DVD-1804.iso 2.VMare激活码: AU5WA-0E ...

  8. CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-7主节点CM安装子节点Agent配置...

    主节点安装cloudera manager 准备工作:下载CM和mysql连接驱动包: CM各版本下载地址:http://archive.cloudera.com/cm5/cm/5/ 从里面选择:ht ...

  9. WeX5 3.8开发工具之蓝牙打印(全流程记录不是最全,胜似最全)

    技术分享 记录踩过的坑和别的大佬没有叽歪的点 开始做蓝牙打印看到网上很多做混合开发 和安卓开发,ios开发的例子,插件等等版本大同小异,并不是像其他博客上所说的那么简单,[下载插件,无需改动,连接打印 ...

  10. object怎么转list_PaddleOCR识别模型转Pytorch全流程记录

    这篇文章主要负责记录自己在转PaddleOCR 模型过程中遇到的问题,以供大家参考. 重要的话说在最前面,以免大家不往下看: 本篇文章是把 "整个" ppocr 模型 转成了 py ...

最新文章

  1. python3.7安装numpy模块-CENTOS7 Python3.7安装numpy
  2. 苹果电脑显示500服务器错误,VS For Mac 运行项目出现 HTTP 500错误
  3. 在SharePoint2007中创建站点一:相关服务的启动
  4. java环境_配置java环境变量
  5. SpringMVC整合Redis2.9.0
  6. ASA防火墙 NAT新版老版的配置方法对比
  7. 庄河投资10亿元强力打造“智慧城市”
  8. java微信小程序毕业设计 java微信校园运动会报名小程序系统毕业设计毕设作品参考
  9. Windows防火墙设置
  10. 什么是MySQL索引?
  11. android 坡度计算器,坡度换算角度计算器(坡度计算器)
  12. 编程序找出1000之内的所有完数
  13. about 日问输入法
  14. MATLAB浮点数详解
  15. DPU网络开发SDK—DPDK(六)
  16. 用fread()和fwrite()读写文件
  17. 418合练剑指618,猫宁要给京东一个下马威?
  18. 【服务器管理】mount.nfs: Stale file handle的解决办法
  19. 英国第一毒舌天才王尔德的损人金句
  20. 基于SSM的心理健康系统

热门文章

  1. python清华大学出版社答案_Python机器学习及实践
  2. DEVC配置C++11标准
  3. 详细安装sqlmap详细教程
  4. 顶级大厂如何做好暗黑模式设计?来看 Ant Design 的规范文档
  5. Mac Eclipse 主题选择
  6. 【免费分享】收集整理的117套各类微信小程序模板源码分享
  7. c语言程序中所有语句都将被转换成二进制的机器指令,c语言练习试题
  8. 人人商城APP打包教程
  9. Win10离线 安装.net frame3.5
  10. 网络调试助手(NetAssist)不能正常创建TCP Serve连接问题