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