?
課程信息
互聯網架構師應該如何設計大規模互聯網系統架構?本課程從介紹一個典型的大規模互聯網系統架構出發,深入討論了互聯網架構中接入層、邏輯層、數據層(又分為數據庫層與緩存層)的設計準則、關鍵技術與常見實踐。
培訓特色
本課程來源于講師在MT多年的架構實踐經驗,不只是方法論的講解,更多是能落地的細節;不僅是的原理講解,更多實際案例。
目標收益
通過學習本課程,學員能夠真實掌握實現一個典型的大規模互聯網架構所涉及的技術、常見的問題與解決方案、多種解決方案各自的優缺點、在不同業務場景下的技術選型,有效的啟發思路、激發興趣、掌握大規模互聯網架構中解決問題的基本方法。
培訓對象
各類互聯網/IT/軟件企業和研發機構的軟件架構師、軟件設計師、程序員。對于有明確互聯網產品業務需求的個人和團隊,效果更佳。
學員基礎
學員要了解一名“程序員”所需要具備的基本技能。
課程大綱
?
主題 |
內容 |
一、大規模互聯網系統架構與設計核心準則
|
(1)典型大規模互聯網系統架構
(2)可用性的概念以及設計準則
(3)擴展性的概念以及設計準則
(4)負載均衡的概念以及設計準則
(5)一致性的概念以及設計準則
|
二、互聯網架構【接入層】核心技術與架構實踐
|
(1)http接入層核心技術與架構實踐
1.1)http接入層可用性設計
1.2)http接入層擴展性設計
1.3)http接入層負載均衡設計
1.4)http接入層session一致性設計
1.5)DNS輪詢的原理與實踐
1.6)反向代理技術的原理與實踐
1.7)lvs與keepalived的原理與實踐
1.8)APP接入的DNS優化
1.9)動靜分離與cdn
1.10)典型的http接入層架構設計總結
(2)cdn技術的原理與啟示
2.1)cdn簡介
2.2)cdn的原理與使用場景
2.3)源站實踐
2.4)鏡像站與數據推拉同步實踐
2.5)數據一致性實踐
2.6)智能DNS的核心技術
2.7)回源的概念與預防
(3)tcp接入層核心技術與架構實踐
3.1)tcp接入層可用性設計
3.2)tcp接入層擴展性設計
3.3)tcp接入層負載均衡設計
3.4)tcp接入層session的設計、超時檢測、session踢出設計
3.5)單機接入20wTCP連接的核心技術
3.6)典型的tcp接入層架構設計總結
(4)接入層安全性設計
(5)典型系統實戰-tcp消息推送系統的架構與實踐
5.1)tcp消息推送系統解決什么問題
5.2)tcp消息推送系統架構簡介
5.3)tcp消息推送系統核心業務流程c2s/s2c/c2c
5.4)聊天消息的可靠投遞
5.5)系統消息投遞優化
5.6)離線消息的特殊性設計
|
三、互聯網架構【邏輯層】核心技術與架構實踐
|
(1)接入層線程模型與邏輯層線程模型實現細節
1.1)并發的基本概念
1.2)接入層線程模型簡介(IO線程與work線程異步)
1.3)接入層線程模型存在的問題
1.4)邏輯層線程模型簡介(純異步)
1.5)單進程單線程如何做到1Wqps并發核心技術
1.6)純異步高并發服務模型總結
(2)邏輯層可用性、擴展性、負載均衡性設計與實踐
2.1)連接池技術
2.2)id串行化技術
2.3)異構服務負載均衡技術與保險絲算法
(3)互聯網邏輯層核心組件與服務
3.1)DAO與ORM的應用場景與解決的問題
3.2)配置中心解決的問題與實踐
3.3)消息總線解決的問題與實踐
(4)典型系統實戰-搜索系統設計與實踐
4.1)搜索系統典型業務介紹
4.2)搜索系統典型架構設計
4.3)搜索系統核心實現技術
|
四、互聯網架構【數據層-固化存儲】核心技術與架構實踐(上)
|
(1)數據庫設計基本概念
(2)數據庫架構-可用性設計與實踐
2.1)讀高可用設計
2.2)寫高可用設計
2.3)實戰解決方案
(3)數據庫架構-讀性能設計與實踐
3.1)索引提速設計
3.2)從庫擴容設計
3.3)緩存擴容設計
(4)數據庫架構-一致性設計與實踐
4.1)主從不一致解決方案
4.2)緩存不一致解決方案
(5)數據庫架構-擴展性設計與實踐
5.1)秒級擴容方案
5.2)字段擴展方案
5.3)數據遷移方案
(6)數據庫架構-水平切分設計與實踐
6.1)“單Key型”表結構水平切分
6.2)“1對多型”表結構水平切分
6.3)“多對多型”表結構水平切分
6.4)“多Key型”表結構水平切分
(7)數據庫中間件與分庫SQL實戰
7.1)IN語句的玩法
7.2)非patition key上的SQL玩法
7.3)夸庫分頁的玩法
|
五、互聯網架構【數據層-緩存存儲】核心技術與架構實踐(下)
|
(1)緩存的概念與原理
(2)常見緩存的介紹與使用選型
2.1)memcache的介紹與使用場景
2.2)redis的介紹與使用場景
2.3)leveldb的介紹與使用場景
(3)不同業務場景對緩存的典型使用
3.1)只讀非高可用業務緩存實踐
3.2)只讀高可用業務緩存實踐
3.3)讀寫非高可用業務緩存實踐
3.4)讀寫高可用業務緩存實踐
(4)緩存架構設計核心
4.1)緩存的可用性設計
4.2)緩存的擴展性設計
4.3)緩存的負載均衡性設計
4.4)緩存的一致性設計
(5)典型系統實戰-計數系統的設計與實踐
5.1)計數系統典型業務介紹
5.2)列擴展計數系統的實踐與缺陷(DB計數)
5.3)行擴展計數系統的實踐與缺陷(DB計數)
5.4)KV緩存計數系統的實踐與缺陷(緩存計數)
5.5)計數系統終極緩存優化方案
|
六、互聯網架構典型協議設計
|
(1)協議的基本概念
(2)常用協議介紹
2.1)文本協議
2.2)二進制協議
2.3)流式xml/json協議
(3)系統設計協議選型
3.1)文本協議的優缺點與選型
3.2)二進制協議的優缺點與選型
3.3)流式xml/json協議的優缺點與選型
(4)協議設計細節
4.1)協議設計如何進行包錯位檢測
4.2)協議設計如何考慮兼容性
4.3)協議設計如何考慮擴展性
4.4)協議設計如何考慮可調試性
4.5)協議設計如何支持異步
4.6)協議設計如何支持變長
4.7)協議設計如何支持各類業務
5)典型協議設計實戰
5.1)DNS系統協議設計
5.2)短域名服務協議設計
5.3)實時監控系統協議設計
5.4)通用統計協議設計
|
? |
? |
?