C++服务器学习路线
转自:https://blog.csdn.net/sinat_16643223/article/details/106077394
https://xie.infoq.cn/article/31fe8d982e52125e2cd6c08fb
1.路线
一. 基础阶段
-
c/c++编程语言
-
linux基础
-
数据结构与算法
-
设计模式
-
脚本语言(可选)
二. 入门阶段
-
linux系统编程
-
linux网络编程
三. 进阶阶段
-
数据库mysql
-
分布式缓存redis
-
网络库
四. 项目实践阶段
-
编写简单FTP服务器
五. 高级阶段(可选)
-
nginx
-
zookeeper
-
消息队列
-
skynet
-
boost
-
负载均衡
-
容器
-
rpc
-
微服务
2.C++后台所需要具备的技能
1). 软件基础
-
1.1 数据结构与算法(磁盘存储链式的 B 树与 B+树, 海最数据去重的 Hash 与 BloomFilter, bitmap)
-
1.2 设计模式(创建型模式, 结构型模式, 行为型模式)
-
1.3 C++新特性(stl 容器,智能指针,正则表达式, 新特性的线程, 协程, 原子操作, lamda 表达式)
-
1.4 Linux 工程管理(Makefile/cmake/configure, 分布式版本控制 git, Linux 系统运行时参数命令)
2). 高性能网络设计专栏
-
2.1 网络编程(网络 io 与 select,poll。epoll, reactor 的原理与实现, http/https 服务器的实现, websocket 协议与服务器实现)
-
2.2 网络原理(服务器百万并发实现, redis,memcached,nginx 网络组件, Posix API 与网络协议栈, UDP 的可靠传输协议 QUIC)
-
2.3 自研框架:协程框架 NtyCo 的实现(协程设计原理与汇编实现, 协程调度器实现与性能测试)
-
2.4 自研框架:用户态协议栈 NtyTcp 的实现(用户态协议栈设计实现, tcp/ip 定时器与滑动窗口, 手把手设计实现 epoll)
3). 基础组件设计专栏
-
3.1 池式组件(手写线程池与性能分析, 内存池的实现与场景分析, 异步请求池的实现, mysql 连接池的实现)
-
3.2 高性能组件(原子操作 CAS 与锁实现, 无锁消息队列实现, 定时器方案红黑树,时间轮,最小堆, 手写死锁检测组件, 手写内存泄漏检测组件, 手把手实现分布式锁)
-
3.3 开源组件(libevent/libev 框架实战的那些坑, 异步日志方案 1og4cpp, 应用层协议设计 ProtoBuf/Thrift)
4). 中间件开发专栏
-
4.1 MySQL(SQL 语句,索引,视图,存储过程,触发器, MySQL 索引原理以及 SQL 优化, MySQL 事务原理分析, MySQL 缓存策略)
-
4.2 TiDB(TiDB 存储引擎的原理, TiDB 集群方案与 Replication 原理)
-
4.3 Redis(Redis 相关命令详解及其原理, Red is 协议与异步方式, 存储原理与数据模型, 主从同步与对象模型)
-
4.4 RocksDB(不一样的 kv 存储 RocksDB 的使用场景, RocksDB 的特殊操作)
-
4.5 Nginx(Nginx 反向代理与系统参数配置 conf 原理, Nginx 过滤器模块实现, Nginx Handler 模块实现)
-
4.5 MongoDB(接口编程与文档操作, 集群方案与持久化备份)
5). 开源框架专栏
-
5.1 skynet(Skynet 设计原理, skynet 网络层封装以及 lua/c 接口编程, skynet 重要组件以及手撕游戏项目)
-
5.2 TARS(TARS RPC 服务模型原理, TARS 公共框架服务与数据库, 数据监控与服务性能压测)
-
5.3 DPDK(DPDK 环境与 testpmd/l3fwd/skeletion, DPDK 的用户态协议栈, 千万级流量并发的 dns 处理, 高性能数据处理框架 vpp, DPDK 的虚拟交换机框架 0vS)
6). Rust 项目专栏
-
6.1 Rust 特性精讲(Rust Slice 类型与泛型, Rust 文件操作与错误处理, Rust 并发编程与智能指针)
-
6.2 组件实现(网卡速度监控, OAuth2 第三方登陆)
-
6.3 第三方库(Rust 异步框架 tokio, Rust web 框架 Warp, Rust http 库 hyper)
7).性能分析专栏
-
7.1 测试框架 gtest 以及内存泄漏检测(函数检测以及类测试,test fixture 测试夹具,类型参数化,事件测试,内存泄漏)
-
7.2 火焰图的生成原理与构建方式(火焰图使用场景与原理,nginx 动态火焰图,MySQL 火焰图,Redis 火焰图)
8). 分布式架构专栏
-
8.1 分布式消息队列(Kafka 使用场景与设计原理, Kafka 存储机制)
-
8.2 分布式服务(远程调用 brpc, 注册服务中心 Etcd)
-
8.3 分布式 API 网关(Kong 动态负载均衡与服务发现, Kong 实时监控与 REST API)
-
8.4 分布式存储与容器(内核级支持的分布式存储 Ceph, 服务容器化 Docker)
9). 上线项目实战
-
9.1 图床共享云存储(fastdfs 架构分析和配置, fastdfs 存储原理,分布式 fastdfs 存储集群部署, 高负载 nginx/fastcgi, 文件传输和接口设计, 产品上云公网发布/测试用例)
-
9.2 微服务即时通讯(IM 即时通讯项目框架分析和部署, IM 消息服务器/文件传输服务器, 消息服务器/路由服务器, 数据库代理服务器设计, 文件服务器和 docker 部署, 产品上云公网发布/公网测试上线)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2018-11-12 线性代数之投影学习
2018-11-12 PAT 1108 Finding Average [难]