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