C++ Linux後臺服務器開發高級架構師學習知識路線(架構師篇)

上篇跟大家分享從Linux開發工程師-Linux後臺開發工程師的學習路線,知識點總結。

今天跟大家分享Linux高級互聯網架構師學習路線及知識點總結:

首先想要成為高級架構師你得先熟練掌握上篇的知識點內容、然後再來學習掌握以下知識點內容。

一:源碼分析

源碼閱讀能力是提升技術必不可少的途徑

1、Nginx源碼

包括:Nginx基礎架構、HTTP架構、 進程間的通信機制、Nginx高級數據結構、slab共享內存、upstream機制設計

2、Redis源碼

包括:Redis存儲系統原理、數據模型與鍵值映射、內存操作與磁盤同步、主從同步,原子操作、底層IO實現解析

3、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、定時調度

包括:觸發器按時啟動原理、Linux定時任務cron配置

6、消息隊列

包括:消息總線VS消息隊列、Redis 消息推送、如何保證消費者接收消息的順序

7、分佈式定時調度 Opencron

8、Web安全

包括:CSRF原理及防範、高級Dos攻擊-Hash碰撞攻擊、腳本注入文件上傳漏洞、SQL注入、XSS攻擊原理與解決方案

9、搜索引擎

包括:搜索引擎原理、分佈式全文搜索 ElasticSearch、全文檢索 Solr、基於MySQL,PostgreSQL全文檢索 Sphinx、全文檢索引擎工具包 Lucene

10、網絡協議棧

包括: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、Zookeeper集群

包括:zookeeper的概念與集群環境部署、zk的特性與數據結構、原理及其內部選舉機制、zk集群實現機制

四:Linux系統

Linux是每個工程師都會討論的話題

1、環境編程

包括:系統文件操作 一切設備接文件、信號量 mmap 共享內存、 系統時間 時間戳 定時器、網絡IO編程 epoll機制、鎖機制 互斥鎖 spinlock 條件變量 原子操作、進程/線程 數據同步機制

2、系統運維

包括:系統日誌管理與配置、服務器環境搭建與配置、集成化工具安裝、shell命令 文件操作

3、內核編程

包括:跨越進程的障礙 內核通信組件實現、內核配置與編譯、網卡驅動的實現

五:音視頻

世界因聲音與圖片而精彩,音視頻技術也是互聯網技術棧必備技能

1、流媒體

包括:音視頻編碼原理詳解、AAC, H264主流編碼格式、H264視頻格式文件走讀、 WebRTC音視頻、WebRTC交互機制詳解、X264編碼詳解

2、編解碼

包括: ffplay音視頻同步分析、ffplay控制原理分析、實現WebRTC點對點通話、RTMP與RTSP編碼分析、播放器開發基礎

六:性能與測試

程序優化是所有程序產品必不可少的話題

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去中心化原理、 應用層協議設計方法論

以上知識點內容於上篇知識點熟練掌握後成為一個高級架構師就不是難事啦。