零声教育 第16代 Linux C/C++开发(后端/音视频/游戏/嵌入式/高性能网络/存储/基础架构/安全)成长体系课程 - v16.9
零声教育
2024-11-25

注:在老师指导下,进行学习,有问题第一时间与老师沟通。切忌盲目自行学习,容易走火入魔,后果自负。
零声教育 16代 Linux C/C++开发(后端/音视频/游戏/嵌入 式/高性能网络/存储/基础架构/安全) 成长体系课程大纲( 红色字体为直播 1. 精进基石专栏 2. 高性能网络设计专栏 3. 基础组件设计专栏 1.1 数据结构与算法 1.1.1 随处可见的红黑树 1.1.2 磁盘存储链式的B树与B+树 1.1.3 海量数据去重的Hash与BloomFilter,bitmap 1.2 设计模式 1.3 c++新特性 1.2.1 创建型设计模式 1.2.2 结构型设计模式 1.4 Linux工程管理 1.4.1 Makefile/cmake/configure 1.4.2 分布式版本控制git 1.4.3 Linux系统运行时参数命令 1.3.1 stl容器,智能指针,正则表达式 1.3.2 新特性的线程,协程,原子操作,lamda表达式 2.1 网络编程 异步网络库zvnet 2.2 网络原理 2.3 自研框架:协程框架NtyCo的实现(已开源) 2.1.1 网络io与io多路复用select/poll/epoll 2.1.2 事件驱动reactor的原理与实现 2.1.3 http服务器的实现 2.2.1 服务器百万并发实现(实操) 2.2.2 Posix API与网络协议栈 2.2.3 UDP的可靠传输协议QUIC 2.3.1 协程设计原理与汇编实现 2.3.2 协程调度器实现与性能测试 2.4.1 用户态协议栈设计实现 2.4.3 应用层posix api的具体实现 2.4.4 手把手设计实现epoll 3.1 池式组件 3.2 高性能组件 3.3 开源组件 3.1.1 手写线程池与性能分析(项目) 3.1.2 内存池的实现与场景分析(项目) 3.1.3 mysql连接池的实现(项目) 3.2.1 原子操作CAS与锁实现(项目) 3.2.2 无锁消息队列实现(项目) 3.2.4 定时器方案红黑树,时间轮,最小堆(项目) 3.2.5 手写死锁检测组件(项目) 3.3.1 异步日志方案spdlog(项目) 3.3.2 应用层协议设计ProtoBuf(项目) 4. 中间件开发专栏 5. 开源框架专栏 7. 性能分析专栏 8. 分布式架构专栏 9. 上线产品项目(基础架构,从零构建) 4.2 MySQL 4.1 Redis 4.5 Nginx 4.3 Kafka 5.1 游戏服务器开发 skynet(录播答疑) 8.2.1 内核级支持的分布式存储Ceph 8.3.1 注册服务中心Etcd 4.2.1 SQL语句,索引,视图,存储过程,触发器 4.2.2 MySQL索引原理以及SQL优化 4.2.3 MySQL事务原理分析 4.2.4 MySQL缓存策略 8.1.2 TiDB存储引擎的原理 8.1.3 TiDB集群方案与Replication原理 4.1.1 Redis相关命令详解及其原理 4.1.2 Redis协议与异步方式 4.1.3 存储原理与数据模型 4.1.4 主从同步与对象模型 4.5.1 Nginx反向代理与系统参数配置conf原理 5.2.2 Kong 动态负载均衡与服务发现 4.5.2 Nginx过滤器模块实现 4.5.3 Nginx Handler模块实现 5.2 分布式API网关 5.1.1 Skynet设计原理 5.1.2 skynet网络层封装以及lua/c接口编程 5.1.3 skynet重要组件以及手撕游戏项目 3.2.6 手写内存泄漏检测组件(项目) 4.3.2 Kafka存储机制 4.3.1 Kafka使用场景与设计原理 11.2 GitHub仓库话题聊天室(互联网产品项目) 7.1.1 测试框架gtest以及内存泄漏检测(录播答疑) 7.1.3 火焰图的生成原理与构建方式 3.2.7 手把手实现分布式锁(项目) 红黑树的应用场景 进程调度cfs,内存管理 红黑树的数学证明与推导 手撕红黑树的左旋与右旋 红黑树添加的实现与添加三种情况的证明 红黑树删除的实现与删除四种情况的证明 红黑树的线程安全的做法 分析红黑树工程实用的特点 单例模式 工厂方法模式与抽象工厂模式 原型模式 适配器模式 代理模式 桥接模式 组合模式 策略模式 观察者模式 责任链模式 状态模式 Makefile的规则与make的工作原理 单文件编译与多文件编译 Makefile的参数传递 多目录文件夹递归编译与嵌套执行make Makefile的通配符,伪目标,文件搜索 Makefile的操作函数与特殊语法 configure生成makefile的原则 cmake的写法 git的工作流程 创建操作与基本操作 分支管理,查看提交历史 git服务器搭建 进程间通信设施状态 ipcs Linux系统运行时长 uptime CPU平均负载和磁盘活动 iostat 监控,收集和汇报系统活动 sar 监控多处理器使用情况 mpstat 监控进程的内存使用情况 pmap 系统管理员调优和基准测量工具 nmon 密切关注Linux系统 glances 查看系统调用 strace ftp 服务器基本信息 ftptop 电量消耗和电源管理 powertop 监控 mysql 的线程和性能 mytop 系统运行参数分析 htop/top/atop Linux网络统计监控工具 netstat 显示和修改网络接口控制器 ethtool 网络数据包分析利刃 tcpdump 远程登陆服务的标准协议 telnet 获取实时网络统计信息 iptraf 显示主机上网络接口带宽使用情况 iftop socket与文件描述符的关联 多路复用select/poll 代码实现LT/ET的区别 reactor针对业务实现的优点 epoll封装 send_cb/recv_cb/accept_cb reactor多核实现 跨平台(select/epoll/kqueue)的封装reactor reactor sendbuffer与recvbuffer封装http协议 http协议格式 有限状态机fsm解析http 同步处理与异步处理的数据差异 网络io线程池异步处理 ulimit的fd的百万级别支持 sysctl.conf的rmem与wmem的调优 conntrack的原理分析 connect,listen,accept与三次握手 listen参数backlog syn泛洪的解决方案 close与四次挥手 11个状态迁移 大量close_wait与time_wait的原因与解决方案 tcp keepalive与应用层心跳包 拥塞控制与滑动窗口 udp的优缺点 udp高并发的设计方案 qq早期为什么选择udp作为通信协议 udp可靠传输原理 quic协议的设计原理 quic的开源方案quiche kcp的设计方案与算法原理 协程存在的3个原因 同步与异步性能,服务端异步处理,客户端异步请求 协程原语 switch,resume,yield, 协程切换的三种实现方式,setjmp/longjmp, ucontext, 汇编实现 汇编实现 寄存器讲解 协程初始启动 eip寄存器设置 协程栈空间定义,独立栈与共享栈的做法 协程结构体定义 调度器的定义分析 超时集合,就绪队列,io等待集合的实现 协程调度的执行流程 协程接口实现,异步流程实现 hook钩子的实现 协程实现mysql请求 协程多核方案分析 协程性能测试 2.4 自研框架:基于dpdk的用户态协议栈的实现(已开源) 用户态协议栈的存在场景与实现原理 netmap开源框架 eth协议,ip协议,udp协议实现 arp协议实现 icmp协议实现 socket/bind/listen的实现 accept实现 recv/send的实现 重传定时器,坚持定时器 epoll数据结构封装与线程安全实现 协议栈fd就绪回调实现 epoll接口实现 LT/ET的实现 线程池的异步处理使用场景 线程池的组成 任务队列 执行队列 任务回调与条件等待 线程池的动态防缩 扩展:nginx线程池实现对比分析 内存池的应用场景与性能分析 内存小块分配与管理 内存大块分配与管理 手写内存池,结构体封装与API实现 避免内存泄漏的两种万能方法 定位内存泄漏的3种工具 扩展:nginx内存池实现 连接池性能的影响的2个因素,tcp连接和mysql认证 连接请求归还策略 连接超时未归还策略 链接断开重连策略 连接数量最优策略 互斥锁的使用场景与原理 自旋锁的性能分析 原子操作的汇编实现 有锁无锁队列性能 内存屏障 Barrier 数组无锁队列设计实现 链表无锁队列设计实现 定时器的使用场景 定时器的红黑树存储 时间轮的实现 最小堆的实现 分布式定时器的实现 日志库性能瓶颈分析 异步日志库设计与实现 批量写入与双缓存冲机制 奔溃后的日志找回 IM,云平台,nginx,http,redis协议设计 如何保证消息完整性 手撕protobuf IM通信协议 protobuf序列化与反序列化 protobuf编码原理 MySQL体系结构,SQL执行流程 SQL CURD与高级查询 视图,触发器,存储过程 MySQL权限管理 索引,约束以及之间的区别 B+树,聚集索引和辅助索引 最左匹配原则以及覆盖索引 索引失效以及索引优化原则 EXPLAIN执行计划以及优化选择过程分析 事务的ACID特性 MySQL并发问题 脏读,不可重复读,幻读 事务隔离级别 锁的类型,锁算法实现以及锁操作对象 S锁 X锁 IS锁 IX锁 记录锁,间隙锁,next-key lock 插入意向锁, 自增锁 MVCC原理剖析 读写分离,连接池的场景以及其局限a 缓存策略问题分析 缓存策略强一致性解决方案 缓存策略最终一致性解决方案 2种mysql缓存同步方案 从数据库与触发器+udf 缓存同步开源方案 go-mysql-transfer 缓存同步开源方案 canal原理分析 3种缓存故障,缓存击穿,缓存穿透,缓存雪崩 string,set,zset,list,hash 分布式锁的实现 lua脚本解决ACID原子性 Redis事务的ACID性质分析 Redis协议解析 特殊协议操作 订阅发布 手撕异步redis协议 string的三种编码方式 int,raw,embstr 双向链表的list实现 字典的实现,hash函数 解决键冲突与rehash 跳表的实现与数据论证 整数集合实现 压缩列表原理证明 对象的类型与编码 字符串对象 列表对象 哈希对象 集合对象 有序集合 类型检测与命令多态 内存回收 对象共享 对象空转时长 redis的3种集群方式 主从复制,sentinel,cluster 4种持久化方案 Nginx静态文件的配置 Nginx动态接口代理配置 Nginx对Mqtt协议转发 Nginx对Rtmp推拉流 Openresty对Redis缓存数据代理 Nginx Filter模块运行原理 过滤链表的顺序 模块开发数据结构 ngx_str_t, ngx_list_t, ngx_buf_t, ngx_chain_t error日志的用法 ngx_comond_t的讲解 ngx_http_module_t的执行流程 文件锁,互斥锁 slab共享内存 如何解决"惊群"问题 如何实现负载均衡 shmem的三种实现方式 原子操作 nginx channel 信号 信号量 Nginx Handler模块运行原理 ngx_module_t/ngx_http_module_t的讲解 ngx_http_top_body_filter/ngx_http_top_header_filter的原理 ngx_rbtree_t的使用方法 ngx_rbtree自定义添加方法 模块性能测试 Nginx的核心数据结构 ngx_cycle_t, ngx_event_moule_t http 请求的11个处理阶段 http包体处理 http响应发送 Nginx Upstream机制的设计与实现 unordered_map stl容器 hash的用法与原理 shared_ptr, unique_ptr basic_regex,sub_match 函数对象模板 function,bind atomic的用法与原理 thread_local与condition_variable 异常处理 exception_ptr 错误处理 error_category coroutine的用法与原理 死锁的现象以及原理 pthread_mutex_lock/pthread_mutex_unlock dlsym的实现 有向图的构建 有向图dfs判断环的存在 三个原语操作 lock_before, lock_after, unlock_after 死锁检测线程的实现 内存泄漏现象 第三方内存泄漏与代码内存泄漏 malloc与free的dlsym实现 内存检测策略 应用场景测试 多线程资源竞争 互斥锁,自旋锁 非公平锁的实现 公平锁的实现 加锁的异常情况 8.1.1 不一样的kv存储RocksDB的使用场景 集群三个组件 TiDB Server,PD Server, TiKV Server Raft协议讲解 OLTP与OLAP TiKV的Key-Value存储引擎 基于RBAC的权限管理 数据加密 日志结构的数据库引擎 前缀搜索 低优先级写入 生存时间的支持 Transactions 快照存储 多核并发编程-多线程,多进程,csp模型,actor模型 actor模型实现-lua服务和c服务 消息队列实现 actor消息调度 skynet reactor网络模型封装 socket/socketchannel封装 手撕高性能c服务 lua编程以及lua/c接口编程 基础接口 skynet.send,skynet.call,skynet.response 广播组件 multicastd 数据共享组件 sharedatad datasheet 手撕万人同时在线游戏 googletest与googlemock文件 函数检测以及类测试 test fixture 测试夹具 类型参数化 事件测试 内存泄漏 设置期望,期待参数,调用次数,满足期望 火焰图使用场景与原理 nginx动态火焰图 MySQL火焰图 Redis火焰图 火焰图工具讲解 etcd配置服务、服务发现、集群监控、leader选举、分布式锁 etcd体系结构详解(gRPC,WAL, Snapshot、BoltDB、Raft) etcd存储原理深入剖析(B树、B+树) etcd读写机制以及事务的acid特性分析 ceph的集群部署 monitor与OSD ceph 5个核心组件 ceph集群监控 ceph性能调调优与benchmark 发布订阅模式 点对点消息传递 Kafka Brokers原理 Topics和Partition Partition存储分布 Partition文件存储机制 Segment文件存储结构 offset查找message 高效文件存储设计 nginx,openresty,Kong之间的“苟且” 动态负载均衡的原理 服务发现实现的原理 Serverless 系统日志 监控,故障检测与恢复 代理层缓存与响应服务 1. MySQL:《高性能MySQL 第3版》 2. Nginx:《深入理解Nginx:模块开发与架构分析(第2版)》(陶辉) 4. Linux内核:《深入理解Linux内核架构》 (郭旭 译) 5. 数据结构与算法:《算法导论》(第3版) 6. 性能分析:《性能之巅 洞悉系统、企业与云计算》 7. MongoDB:《MongoDB权威指南》 8. Ceph:《Ceph分布式存储学习指南》(Ceph中国社区) 9. Docker:《Docker容器与容器云(第2版)》 10. TCP/IP:《Tcp/Ip详解卷一卷二卷三》 11. Linux系统编程:《Unix环境高级编程》 12. 计算机:《深入理解计算机系统》 13. DPDK:《深入浅出DPDK》 3. Redis:Redis设计与实现 (黄健宏) 11. 配套参考书籍资料 12. 零声服务 课程方式 147次课,39次直播,直播持续4个月,直播每周二四六 晚8点到10点 课前预习资料 课后思考实践作业 班主任督学 作业统计 博客统计 老师答疑 工作问题 课程问题 奖学金机制 最高1000元 公开透明(一期评选一次) 面试跳槽 简历梳理 技术点凸显 项目技术梳理 模拟面试 技术表述 薪资谈判 福利争取 offer选择 职业规划 技术前景 学习方法 学员风采 每次课知识点总结成技术博客(写作计划一月评选两次 最高奖200元京东购物卡) 每次课实践题完成github(奖学金评选项) 课程与工作相结合,重新思考需求功能 不理解的技术点 跟老师沟通 往期数据 2024年3月统计 百万级别年薪的学员6位 最高年薪涨幅 30W 最快跳槽学习时间1个半月 部分offer列表 学员直播分享视频 学员回访 11.2.1 项目框架分析和部署 GitHub话题聊天室需求分析 话题聊天室架构 后端服务部署 Web部署 11.2.2 接口设计与实现 HTTP RESTful API原理 MySQL用户表设计 redis缓存token 客户端缓存token 11.2.3 固定话题聊天实现 websocket连接用户校验 话题/用户映射表结构设计 聊天发布到服务器 redis缓存房间在线人员 服务器广播新消息 11.2.4 聊天记录拉取设计与实现 MySQL消息表设计 聊天消息存储 分页拉取聊天消息 登录自动拉取最新消息 黑名单实现 11.2.5 文件服务器和docker部署 在线文件传输机制分析 离线文件传输机制分析 etcd微服务注册与发现 docker制作与部署 11.2.6 产品上云公网发布/公网测试上线 单元测试案例 testbench如何设计 IM项目性能压测 定制私有功能 云服务器部署 适宜工程师人群 5. 工作中技术没有挑战,工作中接触不到新技术的在职工程师 2. 从事嵌入式方向开发,想转入互联网开发的在职工程师 4. 从事非开发岗位(算法岗,运维岗,测试岗),想转后台开发岗位的在职工程师 6. 自己研究学习速度较慢,不能系统构建知识体系的开发人员 7. 了解很多技术名词,但是深入细问又不理解的工程师 8. 计算机相关专业想进入大厂的在校生(本科及以上学历,有c/c++基础) 3. 从事Qt/MFC等桌面开发的,薪资多年涨幅不大的在职工程师 1. 从事业务开发多年,对底层原理理解不够深入的在职工程师 零声其他课程 FFmpeg/WebRTC/RTMP/RTSP/HLS/播放器-音视频流媒体高级开发(录播答疑,196小时) C/C++企业级项目实战班(浏览器/即时通讯/网盘/安全卫士/播放器)(录播答疑,146小时) golang/云原生/Docker/DevOps/K8S/持续集成/分布式/etcd/ipfs(录播答疑,196小时) Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈(录播答疑,134小时) raft共识算法详解(leader选举+日志复制) 磁盘结构分析与数据存储原理 多叉树的运用以及B树的定义证明 B树插入的两种分裂 B树删除的前后借位与节点合并 手撕B树的插入,删除,遍历,查找 B+树的定义与实现 B+树叶子节点的前后指针 B+树的应用场景与实用特点 B+树的线程安全做法 hash的原理与hash函数的实现 hash的应用场景 分布式hash的实现原理 海量数据去重布隆过滤器 布隆过滤的数学推导与证明 7.2 观测技术bpf与ebpf 6. 云原生专栏 6.1 Docker 2.5 高性能异步io机制 2.5.1 与epoll媲美的io_uring 2.5.2 io_uring的使用场景 io_uring系统调用 io_uring_setup, io_uring_register, io_uring_enter liburng的io_uring的关系 io_uring与epoll性能对比 io_uring的共享内存机制 io_uring的accept,connect,recv,send实现机制 io_uring网络读写 io_uring磁盘读写 proactor的实现 4.4 微服务之间通信基石 gRPC 4.4.1 gRPC的内部组件关联 1. ClientSide与ServerSide,Channel,Serivce,Stub的概念 2. 异步gRPC的实现 3. 回调方式的异步调用 4. Server与Client对RPC的实现 4.4.2 基于http2的gRPC通信协议 基于http协议构造 ABNF语法 请求协议 Request-Headers gRPC上下文传递 5.2.1 高性能web网关 Openresty Nginx与lua模块 Openresty访问Redis,MySQL Restful API接口开发 Openresty性能分析 5.3 高性能计算 CUDA(录播答疑) 7.1.2 性能工具与性能分析(录播答疑) MySQL性能测试工具 mysqlslap Redis性能测试工具 redis-benchmark http性能测试工具wrk Tcp性能测试工具TCPBenchmarks 磁盘,内存,网络性能分析 5.3.1 gpu并行计算cuda的开发流程 5.3.2 音视频编解码中的并行计算 cpu+gpu的异构计算 计算机体系结构中的gpu cuda的环境搭建 nvcc与srun的使用 cuda的 向量加法与矩阵乘法 MPI与CUDA cuda的h264编解码 ffmpeg的cuda支持 cuda的mpeg编解码 6.2. Kubernetes 6.1.1. Docker风光下的内核功能(录播答疑) 6.1.2. Docker容器管理与镜像操作(录播答疑) 进程 namespace UTS namespace IPC namespace 网络 namespace 文件系统 namesapce cgroup的资源控制 6.1.3. Docker网络管理(项目) Docker镜像下载与镜像运行 Docker存储管理 5种Docker网络驱动 pipework跨主机通信 OvS划分vlan与隧道模式 GRE实现跨主机Docker间通信 Docker数据卷 Docker与容器安全 6.1.4. Docker云与容器编排(项目) Dockerfile的语法流程 编排神器Fig/Compose Flynn体系架构 Docker改变了什么? 6.2.1 k8s环境搭建(录播答疑) k8s集群安全设置 k8s集群网络设置 k8s核心服务配置 kubectl命令工具 6.2.2 Pod与Service的用法(录播答疑) 6.2.3 k8s集群管理的那些事儿(项目) 6.2.4 k8s二次开发与k8s API(项目) Pod的管理配置 Pod升级与回滚 DNS服务之于k8s http 7层策略与TLS安全设置 RESTful接口 API聚合机制 API组 Go访问k8s API Node的管理 k8s集群日志管理 k8s集群监控 namespace隔离机制 yaml文件语法 14. k8s: 《Kubernates权威指南》龚正等编著 15. bpf:《BPF之巅 洞悉Linux系统和应用性能》 dpdk/网络协议栈/vpp/OvS/DDos/SDN/NFV/虚拟化/高性能专家之路(录播答疑,93小时) 课程涉及编程语言 45%的c,25%的c++,20%的go,5%的lua,5%的其他语言(Rust,shell,java,awk,python) 7.2.1 bpftrace的实现原理 跟踪,嗅探,采样,可观测的理解 动态hook:kprobe/uprobe 静态hook:tracepoint和USDT 7.2.2 bpf对tcp请求的监控(项目) cpu的观测 taskset的使用 网络观测 tcp_connect, tcp_accept,tcp_close bpf对网络流量的统计 7.1 性能与测试工具 7.3 内核源码机制 7.3.2 内核内存管理运行机制 虚拟内存地址布局 SMP/NUMA模型 页表与页表缓存原理 伙伴系统实现 块分配(Slab/Slub/Slob)原理实现 brk/kmalloc/vmalloc系统调用流程 7.3.1 进程调度机制哪些事儿 qemu调试内存 进程调度cfs与其他的四个调度类 task_struct结构体 RCU机制与内存优化屏障 7.3.3 文件系统组件 虚拟文件系统vfs Proc文件系统 super_block与inode结构体 文件描述符与挂载流程 其他协议 websocket,tcp文件传输 10.1 SPDK助力MySQL数据落盘,让性能腾飞 (存储方向) 10.1.1 SPDK文件系统设计与实现 8.1 分布式数据库 8.2 分布式文件系统(录播答疑) 8.3 分布式协同 8.3.2 协同事件 用户态文件系统 fuse(项目) 5.4 并行计算与异步网络引擎 workflow 10.1.2 文件系统的posix api实现 10.1.3 文件系统的性能测试与承接mysql业务 NVMe与PCIe的原理 NVMe Controller与bdev之间的rpc 8.2.2 分布式ceph存储集群部署 同步机制 线性扩容 如何实现高可用 负载均衡 blobstore与blob的关系 4层结构设计vfs spdk的异步改造posix 同步api open/write/read/close的实现 5.5 物联网通信协议 mqtt的实现框架mosquitto LD_PRELOAD更好mysql系统调用实现 iodepth讲解 随机读,随机写,顺序读,顺序写 fuse的使用场景 文件系统读写事件 fuse的实现原理 /dev/fuse的作用 5.4.1 workflow的应用场景 5.4.2 workflow的组件实现 workflow的编程范式与设计理念 mysql/redis/kafka/dns的请求实现 parallel处理与任务组装 线程池实现 DAG 图任务 msgqueue的实现 纯c的jsonparser实现 5.5.1 mqtt的高效使用场景 5.5.2 mqtt的broker mqtt的发布订阅模式 解决低带宽网络环境的数据传输 3种Qos等级 mqtt的遗嘱机制 发布订阅的过滤器 mosquitto的docker部署 mqtt的日志实时监控 OAuth与JWT的安全认证 C/C++/MySQL/Redis/操作系统/八股文/Leetcode/剑指Offer面试攻略(录播答疑,82小时) Qt开发必备技术栈(Qt5/C语言/c++/数据库/OpenCV/Quick/Qt实战)(录播答疑,158小时) 上课内容会按照大纲内容进行,如改动会在vip群进行沟通 课程尽量做到每次课手写代码,课程代码同步gitlab.0voice.com 8.3.3 快播核心技术揭秘 P2P框架的实现(录播答疑) 网关NAT表分析 NAT类型,完全锥型NAT,对称NAT,端口限制锥形NAT,IP限制锥型NAT 代码逻辑实现NAT类型检测 网络穿透的原理 网络穿透的3种情况 目标岗位(红色字体可作为招聘网站搜索关键字) C++后端 开发工程师 安全开发 工程师 高性能 服务器开发 C++专家 /架构师 量化 交易工程师 CDN 研发工程师 自动驾驶 开发 游戏 服务器开发 云原生 底层基础架构 dpdk 网络开发 Linux内核 虚拟化 开发 推荐算法 工程师 存储 研发工程师 流媒体 开发工程师 11.3 云原生内网穿透channel(运维部署开发) 11.3.1 系统设计以及frp开源项目 11.3.2 应用管理与应用配置 10.2 魔兽世界后端TrinityCore(游戏方向) 10.2.1 TrinityCore 开发调试环境安装 10.2.2 TrinityCore 中高性能基础组件应用 10.2.3 TrinityCore 高性能网络模块设计 10.2.4 TrinityCore 游戏技能模块设计 拓展新功能(代码) 11.3.3 go客户端实现Swarm集群应用的部署与更新 11.3.4 vite/vue/elementUI实现前端页面 系统设计与数据库设计 frp TCPMUX代理与httpconnect复用器 项目背景与需求分析 ssh、http、https等类型的应用维护 应用程序端口分配以及配置生成 导出应用配置为yaml格式的配置文件 Docker 启用TLS客户端访问 go客户端根据时间戳创建服务配置 go客户端检查并创建overlay网络 go客户端设置私有注册中心权限 Vue组件化开发与ElementUI Typescript的interface的应用 axios实例与拦截器 3.2.3 网络缓冲区设计 1. RingBuffer设计 2. 定长消息包 3. ChainBuffer设计 4. 双缓冲区设计 redis,memcached,nginx网络组件 上线项目:已上线投入生产使用 费曼学习计划文章集锦(阿里云社区合作) 项目开箱即用,触手可及 1. 魔兽世界后端TrinityCore(游戏方向) c++14/17/20 2. GitHub仓库话题聊天室(互联网c++后端方向) c++11/14 3. 图床共享云存储(云原生基础设施开发方向) c/c++ 4. 云原生内网穿透channel(运维开发方向) go 5. 分布式kvstore(基础架构开发方向) 纯c 6. 协程框架NtyCo(基础库SDK开发) 纯c 7. 用户态tcp/ip协议栈(基础库SDK开发) 纯c 8.4 分布式监控 Prometheus 8.4.1 Prometheus监控系统 8.4.2 Prometheus对MySQL/Redis的监控 数据模型:Metric、Time Series、Sample和Label 指标类型:Counter、Gauge、Histogram、Summary 采集规则和警告规则 PromQL查询语言 8.4.3 Prometheus数据采集 8.4.4 Prometheus构建企微与邮件的状态告警 邮件和企微的接入 Alertmanager配置与容器化运行 警告信息的分组 6种采集点配置方式 动态重写目标采集点 Grafana可视化监控仪表盘 Mysql、Redis Exporter 安装配置 go实现自定义应用程序指标 PromQL计算Mysql、Redis性能指标 Prometheus 数据远程存储 7.2.3 bpf实现对goroutine的探测(项目) 7.2.4 bpf探测java的垃圾回收(项目) tcp_v4_connect与tcp_v6_connect的探测点 struct sock的五元获取 go webserver的实现 uprobe应用层挂载点 bpf的ringbuffer原理 运行时进程maps /proc/pid/maps libjvm.so信息 bpf的usdt的使用 java gc的耗时 8. 网络数据包探测器(网关开发方向) 基于BPF 1.4.4 vscode gdb调试( 新增 2.4.2 tcp的原理实现 tcp 11个状态实现 2.5.3 windows异步机制iocp 滑动窗口与慢启动 time_wait定时器,keepalive定时器 11.1 图床共享云存储(云原生基础设施项目) 11.1.1 fastdfs架构分析和配置 fastdfs架构分析 快速配置fastdfs 上传文件逻辑分析 下载文件逻辑分析 11.1.2 文件传输和接口设计 数据库设计 图床接口设计 reactor网络模型构建 注册/登录/我的文件功能实现 11.1.3 分布式fastdfs存储集群部署和HTTP上传 storage存储原理分析 上传下载原理 实现文件上传功能 相同文件内容只保存一份 11.1.4 图片分享和短链服务实现 图片分享功能实现 图片分享数据库设计 长链转短链机制 11.1.5 分布式FastDFS存储集群部署 FastDFS集群部署 FastDFS同步原理 binlog机制 水平扩容 11.1.6 产品上云公网发布/测试用例 使用云服务器的各种坑分析 postman模拟请求 wrk测试接口吞吐量 jmeter压力测试 5.6 ZeroMQ 5.6.1 消息队列与ZeroMQ的应用 REQ/REP模型原理分析 PUB/SUB模型原理分析 PUSH/PULL模型原理分析 Router/Dealer模型原理分析 5.6.2 ZeroMQ源码分析:消息模型的实现 消息模型 消息传递模式 消息分帧 中间层代理 消息丢失处理 5.6.3 ZeroMQ源码分析:网络机制与性能分析 零拷贝技术 消息高水位标记 无锁队列 可靠性设计 vscode gdb开发环境 gdb 调试准备 gdb 调试命令详解 gdb 多线程调试 gdb 附加进程调试 gdb core files 调试 iocp 完成端口的工作机制 iocp 的精髓重叠 io iocp 处理维护连接以及连接上的收发数据 iocp 多线程处理方案 linux 开发调试环境安装 windows 开发调试环境安装 SRP-6 登录协议介绍 基于 openresty 实现 web 注册服务 tc 高性能定时器方案设计 tc 线程模型以及锁、无锁队列应用 数据库连接池设计 日志库的设计 boost.asio 跨平台网络库 boost.asio 核心命名空间以及异步 io 接口 boost.asio 在 tc 中的封装 网络库应用实践 技能模块设计 技术配置以及数据库表设计 技能模块组成部分 技能生成、处理以及生命周期管理 暴风雪、背刺等技能实现详解 学员遍布美国,加拿大,日本,韩国,新加坡,英国,法国,德国,澳 大利亚,港澳台地区 等国家与地区 自下而上-存储全栈 (TiDB/RockDB/SPDK/fuse/ceph/NVMe)(录播答疑,40小时 在更新) C++游戏后端开发(魔兽世界/MMO/TrinityCore源码拆解)(录播答疑,63小时) 11. 上线产品项目(产品运营,从零落地) 10. 上线产品项目(开源项目,框架迭代) 10.2.5 游戏 AI 模块设计 10.2.6 游戏副本模块设计 AI 模块实现层次 AI 模块三种细分方向以及选择 固定 AI 设计实现以及幼狼AI案例讲解 脚本 AI 设计实现以及BossAI案例讲解 副本模块:管理、匹配、积分结算逻辑实现 副本模块实现的抽象层次 战歌峡谷副本实现 阿拉希盆地副本实现 frp ssh、http、https 内网穿透 frp AuthServerConfig token鉴权 go客户端创建并更新应用服务 get与post请求封装 配置文件与api调用 11.3.5 自动化域名解析与Swarm集群Tunnel服务部署 自动化域名解析与域名备注 服务的部署与客户端配置的返回 Tunnel服务的容器化部署与更新 Tunnel客户端配置部署Tunnel客户端程序 certbot 生成通配符证书用于Tunnel应用 10.3 网络数据包过滤firewall(安全方向) 10.3.1.firewall内核空间netfilter架构设计 10.3.2 firewall内核空间架构实现 内核空间设计与实现分析 设计数据包传递参数值 封装端口及IP规则类型 设计检测规则/IP/协议函数 10.3.3 firewall用户空间架构设计 检测规则/IP/协议函数实现 检查权限及规则函数实现 数据包出入站过滤器实现 读写规则/检查规则匹配实现 删除规则/模块加载和卸载 10.3.4 firewall 应用程序调试与上线 设计数据包传递参与宏 封装端口及IP规则类型 用户空间设计与实现分析 Hook入口函数设计与实现 IP/掩码/端口函数实现 协议类型/解析/删除规则 用户层访问及bug处理 用户程序测试及调试技巧 9.2 zrpc的实现(基础架构开发) 9.3 PHS 高性能网关服务(基础架构开发) 10.4 BPF网络数据包探测器(网关开发) 9.2.1 rpc使用场景与架构设计 9.2.2 rpc的协议与序列化 9.2.3 rpc代码自动生成器的实现 分布式核心调度业务 网络与业务分离 网络选型 reactor, 协程,io_uring json定义函数 数据序列化 rpc处理流程 调用接口模式统一化 float与double调用的差异 第三方语言的支持 性能测试与业务上线 rpc的内存池的特性 9.4 DPDK的数据包测试仪(网络开发) 9.4.1 测试仪架构设计与使用场景 9.3.1 PHS 后端框架构建 reactor 事件模型 核心的组成部分以及实现 框架基础功能实现 9.3.2 PHS 后端基础组件实现 9.3.3 PHS访问静态网页 opensssl 引入 http 协议实现 静态资源管理 性能测试与部署上线 线程池封装实现 定时器模块实现 高性能web的内存池特性 10.4.1 监控探测仪的场景与架构设计 10.4.2 tc数据流记录存储 bpf.c实现tcp数据包探测 bpf.c解析tcp与http 内核与应用层的通信数据格式 kv存储构建发送与接收的key-value http请求实现集中式存储 数据流记录表关系 10.4.3 测试上线与前端显示 内核与应用程序的通信测试 kv的存储测试 数据流记录表的qps测试 前端显示与上线 9.4.2 协议流组织 9.4.3 异常情况与测试标准 使用场景与测试方案 多核与多线程亲缘性 测试仪使用的命令行参数 arp数据组织 udp数据包 tcp的syn,rst,fin,ack包 icmp协议组织 异常命令行参数的处理 异常网络数据包的处理 cpu与内存不足的异常处理 9. 数据包测试仪(网络开发方向) 基于dpdk 10.zrpc的实现(基础架构开发方向) 纯c 11. zvfs(可用于mysql,达梦数据落盘,存储开发方向) 基于spdk 12. HPS 高性能网关服务(基础架构开发方向) 13. firewall的实现(网络安全方向) 基于netfilter Redis缓存优化 图床功能查漏补缺 11.4 零声教学AI助手 一代(AI部署落地项目) 11.4.1 AI助手架构设计与需求分析 11.4.2 接口功能设计 11.4.3 向量数据库与连接池设计 11.4.4 服务部署上线 基于开源项目初步构建项目 gin框架实现代理服务 chatgpt的构想与需求分析 grpc与protobuf的使用流程 token计数器与tokenizer的服务封装 敏感词识别服务 redis实现上下文管理 问题记录保存 web端协议解析 OneBot协议 docker stack 服务部署 wrk接口吞吐量测试 线上节点监控 14. 零声教学AI助手 一代(AI部署落地开发方向) go 9.1 dkvstore实现(基础架构开发) 9.1.1 kv存储的架构设计 存储节点定义 tcp server/client hash数据存储 list数据存储 skiptable数据存储 rbtree数据存储 9.1.2 网络同步与事务序列化 序列化与反序列化格式 建立事务与释放事务 线程安全的处理 9.1.3 内存池的使用与LRU的实现 大块与小块分配策略 内存回收机制 吞吐量测试 数据持久化 网络测试tps 9.1.4 KV存储的性能测试 go,lua,java多语言支持 hash/list/skiptable/rbtree测试