C/C++ Linux后台服务器开发高级架构师学习知识点路线总结(2021架构师篇完整版)

C/C++ Linux后台服务器开发高级架构师学习知识点路线总结(2021架构师篇完整版)

前言:

小编之前有跟大家分享过一篇架构师体系知识点总结的文章,今天在原来的基础上有所改变更新(2021版)。

相信大家也知道,想要成为一名架构师肯定是需要一定的时间经验累积,才可以达到架构师的水平,今天分享的是成为架构师需要掌握的技术知识点,尽量的完善,目前对标的是知名企业腾讯、阿里等等后端开发岗位。

今天更新的内容是从Linux高级互联网架构师知识点说起,基础的知识点今天在这里就不写出来了,有需要了解的朋友可以看看我之前的文章:C/C++ Linux 后台服务器开发高级架构师学习知识路线总结

Linux高级互联网架构师专栏

目录:

一:源码分析专题

二:中间件开发专题

三、集群

四:Linux系统专题

五:性能与测试专题

六:运维统计专题

七:分布式架构专题

八:挑战网络性能极限DPDK专栏

九、全方位分析Linux内核代码专栏

文末附上整体的思路图、

一:源码分析专题

源码阅读能力是提升技术必不可少的途径

1、Nginx源码

知识点包括:Nginx基础架构、HTTP架构、 进程间的通信机制、Nginx高级数据结构、slab共享内存、upstream机制设计

2、Redis源码

知识点包括:Redis存储系统原理、数据模型与键值映射、内存操作与磁盘同步、主从同步,原子操作、底层IO实现解析

3、skynet源码

知识点包括:网络模块实现与数据共享、定时器实现、actor实现与cluster集群、lua辅助库的实现、负载均衡与热更新方案、c服务开发与对接客户端、skynet奇技淫巧

4、ZeroMQ源码

知识点包括:消息模型 发布订阅/推拉模型、通信协议 inproc/ipc/tcp/pgm、性能分析与经典MQ对比、底层网络通信实现机制、zmq系统架构与实现原理

二:中间件开发专题

要有造轮子的能力,也要有不造轮子的觉悟,SDK是高级开发必须要有的封装能力

1、高性能组件

知识点包括:如何设计内存池、高并发场景下的消息队列、协程框架的实现、手写线程池、异步请求池、连接池、

2、高并发网络IO

知识点包括:select,poll和epoll模型的区别、 Linux系统IO模型、理解Linux 服务器高并发编程、网络接入层架构设计、你必须懂得Epoll玩法

3、并发性

知识点包括:多线程与线程安全、事务的隔离级别、公平锁&非公平锁、CopyOnWrite容器、悲观锁&乐观锁&CAS&ABA问题、 事务ACID特性

4、Web服务

知识点包括:反向代理Nginx、最广泛的web服务器 Httpd、高性能 Web 平台OpenResty

5、定时调度

知识点包括:分布式定时调度 Opencron、触发器按时启动原理、Linux定时任务cron配置

6、消息队列

知识点包括:消息总线VS消息队列、Redis 消息推送、如何保证消费者接收消息的顺序

7、Web安全

知识点包括:CSRF原理及防范、高级Dos攻击-Hash碰撞攻击、脚本注入文件上传漏洞、SQL注入、XSS攻击原理与解决方案

8、网络协议栈

知识点包括:tcp/udp/ip/eth、多进程实现高并发、滑动窗口、延迟确认、定时重传、流量控制、tcp握手挥手

三、集群

必须要有的产品级技能。

1、MySQL集群

知识点包括:MySQL Cluster 评估指南、读写分离 分库分表、Binlog机制分析、健全性检查与故障排除、数据模型与查询设计

2、Redis集群

知识点包括:Redis Cluster方案、节点自动发现、master/slave 选举,集群容错、ASK转向/MOVED转向机制

3、FastDFS集群

知识点包括:tracker与storage节点、文件上传/下载测试、fastdfs-nginx-module的原理、fastdfs的实现原理

4、K8S集群

知识点包括:K8S核心组件、无缝对接新应用、快速部署应用与扩展、自动部署、管理容器化

5、Nginx集群

知识点包括:Nginx的实现原理、经典应用场景、高可用方案的实现机制、LVS与Nginx集群

6、 MongoDB集群

知识点包括:高可用的MongoDB集群方案、文档管理机制与实现、配置分片的表与片键、MongoDB集群环境部署

7、etcd分布式注册

知识点包括:etcd的概念与集群环境部署、etcd的特性与数据结构、原理及其内部选举机制etcd集群实现机制

8、rpc微服务 tars

知识点包括:tars的搭建与部署、微服务rpc的原理

四:Linux系统专题

Linux是每个工程师都会讨论的话题

1、环境编程

知识点包括:系统文件操作 一切设备接文件、信号量 mmap 共享内存、 系统时间 时间戳 定时器、网络IO编程 epoll机制、锁机制 互斥锁 spinlock 条件变量 原子操作、进程/线程 数据同步机制

2、系统运维

知识点包括:系统日志管理与配置、服务器环境搭建与配置、集成化工具安装、shell命令 文件操作

五:性能与测试专题

程序优化是所有程序产品必不可少的话题

1、理解性能优化

知识点包括:容量评估 平均QPS 高峰QPS 单机QPS、CDN网络加速原理、连接池的性能优化、性能优化方法论

2、MySQL调优

知识点包括:理解MySQL底层原理 B+Tree机制、索引优化揭秘、 SQL语句优化、SQL执行机制详解

3、测试理论

知识点包括:深度解析 TDD 测试驱动开发、全链路压测经验、Nginx根据IP进行灰度发布 A/B Test、真实流量测试工具 tcpcopy、单元测试minUnit

4、Linux调优

知识点包括:内核代码组织架构、系统IO参数调优配置、网络协议栈参数配置、内核代码编译与内核更换

5、GCC调优

知识点包括:快速编译工程Makefile编写、编译机制 编译原理

六:运维统计专题

团队合作,产品开发,必须要有代码管理能力

1、Jenkins

知识点包括:搭建Jenkins自动化部署环境、test\pre\production 多环境发布、Jenkins集成git实现自动部署、Jenkins多环境配置,权限管理及插件使用

2、虚拟化

知识点包括:Xen虚拟化搭建与原理详解、KVM经典详解、OpenStack架构知识梳理、开源Linux容器 OpenVZ

3、Docker

知识点包括:Dockerfile的编译与镜像编译、Docker-Compose部署与编排、Docker命令与镜像版本提交、Docker的原理

七:分布式架构专题

以铜为镜,可以正衣冠;以古为镜,可以知兴替;以人为镜,可以明得失。从互联网一线产品的技术架构,提高自己的视野

1、架构实战

知识点包括:新浪门户负载均衡方案解析、京东海量存储哈希存储引擎解密、虎牙核心视频直播架构技术揭秘、京东分布式K-V存储设计与挑战、阿里网络故障智能化治理解决方案、小艾叮咚语音核心技术语音合成实战、微信安全开放性云平台架构探秘、爱奇艺大数据平台的构建之路

2、架构中间件

知识点包括:远程调用rpc从入门到精通、多进程高效通信之共享MM全攻略、Nginx进程间通信剖析、高性能服务器为什么需要内存池、百度大规模时序指标自动异常检测实战

3、架构策略

知识点包括:订阅者发布者模式实现高并发架构、阿里云Elasticsearch架构解析与性能优化实践、两段提交与多段提交、UDP分片原理分析及其实现方法、Reactor模式和线程池实现高并发服务

4、架构原理

知识点包括:消息驱动式架构设计方法论、动态域名解析和CDN原理、Zookeeper原理、分布式锁的原理、P2P去中心化原理、 应用层协议设计方法论

对于自学的朋友,耗时比较久,技术栈不完善,架构不成体系,自律性差。这里给大家分享一个学习视频链接,订阅后免费试听:C/C++Linux服务器开发/后台架构师【零声学院】-学习视频教程-腾讯课堂

八:挑战网络性能极限DPDK专栏

1、认识DPDK

知识点包括:主流包处理硬件平台、解读数据包处理能力

件包处理的潜力:DPDK加速网络节点、DPDK加速计算节点、DPDK加速存储节点、DPDK的方法论

实践回顾理论:Skeleton、L3fwd

2、Cache和内存

知识点包括:Cache系统、Cache地址映射和变换、Cache的写策略、Cache预取、Cache一致性、TBL和巨页、英特尔数据直接DDIO、非统一内存访问NUMA

存储系统:系统架构的演进、内存子系统

3、并行计算

知识点包括多核性能和可扩展性:追求性能水平扩展、多核处理器亲和性、DPDK的多线程

指令并发与数据并行:指令并发、单指令多数据

4、同步互斥机制

知识点包括原子操作:处理器上的原子操作、Linux内核原子操作、DPDK原子操作实现与应用

读写锁:Linux读写锁核心API、DPDK读写锁实现和应用

自旋锁:自旋锁的缺点、Linux自旋锁API、DPDK自旋锁实现和应用

无锁机制:Linux内核无锁环形缓冲、DPDK无锁环形缓冲

5、报文转发

知识点包括转发框架介绍:网络处理模块划分、DPDK run to completion模型、DPDK pipeline模型

转发算法:精确匹配算法、最长前缀匹配算法、ACL算法、报文分发

6、PCIe与包处理I/O

知识点包括PCIe事务的角度:异常中断模、式轮询模式、混合中断轮询模式

PCIe上的数据传输能力:Brust收发包的优点、批处理和时延隐藏、利用Intel SIMD指令并行化包收发、网卡DMA描述符环形队列、数据包收发—CPU和I/O

Mbuf和Mempool:Mbuf、Mempool

7、网卡性能优化

知识点包括DPDK的轮询模式:异步中断模式、异步中断模式、混合中断轮询模式

网卡I/O性能优化:Burst收发包的优点、批处理和时延隐藏、Intel SIMD指令并行转发

平台优化及其配置调优:硬件平台的性能影响、软件平台的性能影响

队列长度及各种阈值的设置:收包队列长度、发包队列长度、收包队列可释放描述符数量阈值、发包队列可释放描述符数量阈值、发包描述符释放阈值

8、流分类与多队列

知识点包括多队列:网卡多队列的由来、Linux内核对多队列支持、DPDK与多队列、队列分配

流分类:包的类型、接收方扩展 RSS、Flow Director、服务质量、虚拟化流分类的方式、流过滤

流分类技术的使用:DPDK结合网卡Flow Director功能、DPDK结合网卡虚拟化及cloud Filter功能、可重构匹配表

9、Intel 硬件功能

知识点包括:网卡硬件卸载功能、DPDK软件接口、硬件与软件功能实现、分片组包卸载

计算及更新功能卸载:VLAN硬件卸载、IEEE1588硬件卸载功能、IP TCP/UDP/SCTP checksum硬件卸载功能、Tunnel硬件卸载功能

10、X86平台的IO虚拟化

知识点包括:PCIe网卡透传下的收发包流程、I/O透传虚拟化配置

X86平台虚拟化概述:CPU虚拟化、内存虚拟化、I/O虚拟化

I/O透传虚拟化:Intel VT-d、PCI SR-IOV

11、半虚拟化Virtio

知识点包括:Virtio使用

Virtio规范和原理:设备的配置、虚拟队列的配置、设备的使用

Virtio网络设备驱动设计:Virtio网络设备Linux内核驱动设计、基于DPDK用户空间Virtio网络设备驱动设计

12、加速包处理的vhost优化方案

知识点包括vhost的演进和原理:Qemu与Virtio-net、Linux内核态vhost-net、用户态vhost

基于DPDK的用户态vhost设计:消息机制、地址转换和映射虚拟机内存、vhost特性协商、virtio-net设备管理、vhost中的Checksum和TSO功能卸载

DPDK vhost编程实例:报文收发接口、使用DPDK vhost lib、使用DPDK vhost PMD

13、DPDK与网络功能虚拟化

知识点包括:网络功能虚拟化、OPNFV与DPDK、NFV的部署、

VNF自身特性的评估:性能分析方法论、性能优化思路

VNF的设计:VNF虚拟网络接口的选择、IVSHMEM共享内存的PCI设备、网卡轮询和混合中断轮询模式的选择、硬件加速功能的考虑、服务质量的保证

实例分析和商业案例:Virtual BRAS、Brocade vRouter 5600

14、Open vSwitch中的DPDK性能加速

知识点包括:虚拟交换机、OVS

DPDK加速的OVS:OVS的数据通路、DPDK加速的数据通路、DPDK加速的OVS性能

15、基于DPDK的存储软件优化

知识点包括:基于以太网的存储系统、以太网存储系统的优化

SPDK介绍:基于DPDK的用户态TCP/IP栈、用户态存储驱动、SPDK中iSCSI target实现与性能

九、全方位分析Linux内核代码专栏

1、进程管理和调度

知识点包括:进程的优先级、进程生命周期

进程表示:进程类型、命名空间、进程ID号、进程关系

进程管理相关的系统调:进程复制、内核线程、启动新进程、退出进程

调度器的实现:概观、数据结构、处理优先级、核心调度器

完全公平调度类:数据结构、CFS操作、队列操作、选择下一个进程、处理周期性调度器、唤醒抢占、处理新进程

实时调度类:性质、数据结构、调度器操作

调度器增强:SMP调度器、调度域和控制组、内核抢占和低延迟相关工作

2、内存管理

知识点包括(N)UMA模型中的内存组织:概述、数据结构

页表:数据结构、页表项的创建和操作

初始化内存管理:建立数据结构、特定于体系结构的设置、启动过程期间的内存管理

物理内存管理:伙伴系统的结构、避免碎片、初始化内存域和结点数据结构、分配器API、分配页、释放页、内核中不连续页的分配、内核映射

slab分配器:备选分配器、内核中的内存管理、slab分配的原理、实现、通用缓存

3、进程虚拟内存

知识点包括:内存映射的原理

进程虚拟地址空间:进程地址空间的布局、建立布局

数据结构:树和链表、虚拟内存区域的表示、优先查找树

对区域的操作:将虚拟地址关联到区域、区域合并、插入区域、创建区域

内存映射:创建映射、删除映射、非线性映射

反向映射:数据结构、建立逆向映射、使用逆向映射

用户空间缺页异常的校正:按需分配/调页、匿名页、写时复制、获取非线性映射

4、设备驱动程序

知识点包括访问设备:设备文件、字符设备、块设备和其他设备、使用ioctl进行设备寻址、主从设备号的表示、注册

与文件系统关联:inode中的设备文件成员、标准文件操作、用于字符设备的标准操作、用于块设备的标准操作

字符设备操作:表示字符设备、打开设备文件、读写操作

块设备操作:块设备的表示、数据结构、向系统添加磁盘和分区、打开块设备文件、请求结构、BIO、提交请求、I/O调度、ioctl的实现

资源分配:资源管理、I/O内存、I/O端口

总线系统:通用驱动程序模型、PCI总线、USB

5、虚拟文件系统

知识点包括:文件系统类型

通用文件模型:inode、链接、编程接口、将文件作为通用接口

proc文件系统:/proc的内容、数据结构、初始化、装载proc文件系统、管理/proc数据项、进程相关的信息、系统控制机制

简单的文件系统:顺序文件、用libfs编写文件系统、调试文件系统、伪文件系统

sysfs:数据结构、装载文件系统、、文件和目录操作、向sysfs添加内容

VFS的结构:结构概观、inode、特定于进程的信息、文件操作、目录项缓存

处理VFS对象:文件系统操作、文件操作

标准函数:通用读取例程、失效机制、权限检查

6、系统调用

知识点包括系统程序设计基础:追踪系统调用、支持的标准、重启系统调用

中断:中断类型、硬件IRQ、处理中断、数据结构、中断电流处理、初始化和分配IRQ、处理IRQ

软中断:开启软中断处理、软中断守护进程

tasklet:创建tasklet、注册tasklet、执行tasklet

等待队列和完成量:等待队列、完成量、工作队列

系统调用的实现:系统调用的结构、访问用户空间、追踪系统调用

7、页面回收和页交换

知识点包括:交换令牌、数据回写

概述:可换出页、页颠簸、页交换算法

Linux内核中的页面回收和页交换:交换区的组织、检查内存使用情况、选择要换出的页、处理缺页异常、减缩内核缓存

管理交换区:数据结构、创建交换区、激活交换区

交换缓存:标识换出页、交换缓存的结构、添加新页、搜索一页

页面回收:概述、数据结构、确定页的活动程度、收缩内存域、隔离LRU页和集中回收、收缩活动页链表、回收不活动页

处理交换缺页异常:换入页、读取数据、交换预读

发起内存回收:kswapd进行周期性内存回收、在严重内存不足时换出页

收缩其他缓存:数据结构、注册和删除收缩器、收缩缓存

文末整体的思路图分享给大家,清晰版可以后台私信我获取

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,478评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,825评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,482评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,726评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,633评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,018评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,168评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,320评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,264评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,288评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,995评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,587评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,909评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,284评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,862评论 2 339

推荐阅读更多精彩内容