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