【課程簡(jiǎn)介】
本課程培訓(xùn)周期為2天
本課程從高并發(fā)、大數(shù)據(jù)、高可靠3個(gè)方面入手,講解了大型互聯(lián)網(wǎng)應(yīng)用系統(tǒng)是如何從容應(yīng)對(duì)數(shù)以億計(jì)的用戶并發(fā)訪問(wèn)、海量業(yè)務(wù)數(shù)據(jù)的性能壓力,如何高效而穩(wěn)定地進(jìn)行架構(gòu)設(shè)計(jì)的。課程由淺入深先介紹了與高并發(fā)、大數(shù)據(jù)、高可靠相關(guān)的概念、指標(biāo)與解決思路。
接著,由淺入深、層層推進(jìn)、從各個(gè)層面逐步介紹了,從數(shù)據(jù)接入層、數(shù)據(jù)庫(kù)層、業(yè)務(wù)邏輯層,逐步分析在架構(gòu)設(shè)計(jì)各個(gè)環(huán)節(jié)可能遇到的性能問(wèn)題、可以采用的技術(shù),這些技術(shù)的基本原理與解決思路,以及相關(guān)互聯(lián)網(wǎng)應(yīng)用的具體案例。通過(guò)這些案例的講解,可以為學(xué)員日后的架構(gòu)設(shè)計(jì)開闊思路、加深認(rèn)識(shí)。
此外,在面對(duì)大數(shù)據(jù)量方面,介紹了NoSQL數(shù)據(jù)庫(kù)、Hadoop大數(shù)據(jù)處理技術(shù),以及它們?cè)趹?yīng)對(duì)海量數(shù)據(jù)存儲(chǔ)、深度數(shù)據(jù)挖掘與高效數(shù)據(jù)查詢方面,所起到的作用。通過(guò)案例講解,可以讓學(xué)員理解如何運(yùn)用NoSQL數(shù)據(jù)庫(kù)與Hadoop大數(shù)據(jù)處理技術(shù)解決海量數(shù)據(jù)處理與高效查詢的問(wèn)題。
【培訓(xùn)特色】
本課程注重實(shí)戰(zhàn),采用案例貫穿方式完成實(shí)踐,收集了大量的真實(shí)案例,針對(duì)項(xiàng)目過(guò)程中技術(shù)人員常犯的錯(cuò)誤進(jìn)行了匯總,研討,并形成培訓(xùn)教程。通過(guò)大量的真實(shí)案例,詳細(xì)地介紹了分布式計(jì)算與內(nèi)存數(shù)據(jù)庫(kù)培訓(xùn)需要注意的要點(diǎn)以及難點(diǎn),這些知識(shí)都是講師十幾年經(jīng)驗(yàn)的總結(jié)。
【培訓(xùn)對(duì)象】
初中高級(jí)工程師、企業(yè)架構(gòu)師、軟件設(shè)計(jì)師、數(shù)據(jù)庫(kù)/存儲(chǔ)技術(shù)人員、技術(shù)決策/解決方案人員等。
【培訓(xùn)時(shí)長(zhǎng)】
2天
【課程大綱】
|
授課內(nèi)容 |
第一部分 概述 |
|
第一單元 互聯(lián)網(wǎng)架構(gòu)的特點(diǎn)及解決思路 |
高并發(fā) 1. 高并發(fā)的概念 2. 高并發(fā)問(wèn)題的解決思路:目標(biāo)→問(wèn)題→方案 3. 橫向擴(kuò)展與縱向擴(kuò)展 大數(shù)據(jù) 1. 大數(shù)據(jù)的概念
2. 大數(shù)據(jù)問(wèn)題的解決思路 高可靠性 1. 高可靠性在三個(gè)層面的概念
2. 高可靠性的設(shè)計(jì)思路 |
第二部分 針對(duì)高并發(fā)的架構(gòu)設(shè)計(jì) |
|
第二單元 大并發(fā)相關(guān)的指標(biāo) |
高并發(fā)相關(guān)的指標(biāo) 1. 吞吐量 / 每秒事務(wù)數(shù) / 事務(wù)響應(yīng)時(shí)間 2. 用戶數(shù) / 用戶并發(fā)數(shù) / 用戶并發(fā)數(shù)峰值 高并發(fā)問(wèn)題的解決思路 1. 目標(biāo)→問(wèn)題→方案 2. 業(yè)務(wù)梳理與優(yōu)化 |
第三單元 并發(fā)量較大時(shí)的快速優(yōu)化策略 |
傳統(tǒng)架構(gòu)的演變過(guò)程 1. All-in-One的架構(gòu)設(shè)計(jì) 2. 多級(jí)集中的架構(gòu)設(shè)計(jì) 3. 傳統(tǒng)架構(gòu)面臨的挑戰(zhàn) 基于風(fēng)險(xiǎn)的架構(gòu)設(shè)計(jì)思想 1. 先識(shí)別未來(lái)存在的風(fēng)險(xiǎn),再進(jìn)行有針對(duì)的架構(gòu)設(shè)計(jì) 2. 用快的速度解決急迫的問(wèn)題 并發(fā)量較大時(shí)的快速優(yōu)化策略 1. DNS的原理與防止DNS劫持 2. 智能DNS及其優(yōu)缺點(diǎn) 3. CDN內(nèi)容分發(fā)網(wǎng)絡(luò)及其優(yōu)缺點(diǎn)
4. 負(fù)載均衡與反向代理 |
第四單元 數(shù)據(jù)庫(kù)瓶頸及其優(yōu)化策略 |
數(shù)據(jù)庫(kù)瓶頸 1. 現(xiàn)有數(shù)據(jù)庫(kù)設(shè)計(jì)及其性能瓶 2. Shared Disk vs. Shared Nothing 數(shù)據(jù)庫(kù)讀寫分離的設(shè)計(jì)
1. 三種不同類型的操作及其優(yōu)化策略
2. MySQL主從機(jī)實(shí)現(xiàn)讀寫分離 3. 真正實(shí)現(xiàn)讀寫分離的設(shè)計(jì)方案 數(shù)據(jù)庫(kù)分庫(kù)的設(shè)計(jì)思想
1. 縱向拆分的設(shè)計(jì)思想及其注意的問(wèn)題
2. 橫向拆分的設(shè)計(jì)思想及其注意的問(wèn)題
3. 在原有系統(tǒng)上如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)分庫(kù) |
第五單元 應(yīng)用緩存的設(shè)計(jì) |
應(yīng)用緩存技術(shù) 1. 應(yīng)用緩存技術(shù)解決的問(wèn)題 2. 單機(jī)緩存 vs. 分布式緩存 3. 分布式緩存的特點(diǎn)及其設(shè)計(jì) Memcached技術(shù) 1. Memcached技術(shù)及其特點(diǎn) 2. 分布式哈希算法及其一致性哈希
3. Memcached的部署結(jié)構(gòu)及其應(yīng)用方案 如何在原有系統(tǒng)上進(jìn)行應(yīng)用緩存改造 1. Spring + Memcached的設(shè)計(jì)改造過(guò)程 2. Hibernate + Memcached的設(shè)計(jì)改造過(guò)程 3. Memcached的命中率分析及其調(diào)優(yōu) 應(yīng)用緩存的設(shè)計(jì)過(guò)程及其應(yīng)當(dāng)注意的問(wèn)題 1. 負(fù)載均衡的Session同步及其故障轉(zhuǎn)移 2. 緩存服務(wù)器雪崩現(xiàn)象及其解決思路 3. 緩存服務(wù)器依賴現(xiàn)象及其解決思路 4. 緩存服務(wù)器穿透現(xiàn)象及其解決思路 |
第六單元 內(nèi)存數(shù)據(jù)庫(kù)的設(shè)計(jì) |
內(nèi)存數(shù)據(jù)庫(kù)技術(shù) 1. 內(nèi)存數(shù)據(jù)庫(kù)的概念 2. 解析內(nèi)存數(shù)據(jù)庫(kù)的運(yùn)行原理 3. Oracle TimesTen的介紹 4. Gemfire及其在12306的應(yīng)用 Redis內(nèi)存數(shù)據(jù)庫(kù)技術(shù) 1. Redis的運(yùn)行原理及其特點(diǎn) 2. Redis的部署形式
3. Redis的應(yīng)用設(shè)計(jì) 4. 內(nèi)存數(shù)據(jù)庫(kù)的設(shè)計(jì)局限 |
第七單元 異步化操作的設(shè)計(jì) |
1. 異步化操作的原理 案例:12306的異步化改造過(guò)程 2. 異步化操作的設(shè)計(jì)實(shí)踐 3. 分布式隊(duì)列的設(shè)計(jì) 案例:用消息隊(duì)列解決分布式事務(wù) 案例:用消息隊(duì)列解決內(nèi)存數(shù)據(jù)庫(kù)的同步 |
第八單元 限流措施與服務(wù)降級(jí) |
限流措施的作用與思路 1. 以降低服務(wù)能力為代價(jià)保證系統(tǒng)活著 2. 隨機(jī)性地讓一些請(qǐng)求被拒絕 3. 有選擇性地拒絕某些業(yè)務(wù)請(qǐng)求 數(shù)據(jù)接入層的限流措施 1. 按用戶IP進(jìn)行限流 2. 按桶容量進(jìn)行限流 應(yīng)用層的限流措施 服務(wù)降級(jí)措施 |
第九單元 高負(fù)載微服務(wù)系統(tǒng) |
微服務(wù)的概念 1. 微服務(wù)的內(nèi)在需求 2. 服務(wù)發(fā)現(xiàn)與Netflix 3. 微服務(wù)落地的經(jīng)驗(yàn)與難點(diǎn) 微服務(wù)落地 案例:高負(fù)載微服務(wù)系統(tǒng)的架構(gòu)演進(jìn)之路
|
第十單元 不斷演進(jìn)的架構(gòu)設(shè)計(jì)過(guò)程 |
互聯(lián)網(wǎng)+時(shí)代的架構(gòu)設(shè)計(jì)特點(diǎn) 1. 互聯(lián)網(wǎng)+帶來(lái)的巨大變革 2. 互聯(lián)網(wǎng)公司不斷面對(duì)的升級(jí)改造 3. 傳統(tǒng)行業(yè)必須面對(duì)的互聯(lián)網(wǎng)轉(zhuǎn)型 好的架構(gòu)源于不斷的衍變 案例:58同城的架構(gòu)衍變過(guò)程 1. 初始的架構(gòu)設(shè)計(jì) 2. 網(wǎng)絡(luò)接入層的改造過(guò)程 3. 數(shù)據(jù)庫(kù)拆分的改造過(guò)程 4. 服務(wù)化為中心的改造過(guò)程 |
第三部分 針對(duì)大數(shù)據(jù)的架構(gòu)設(shè)計(jì) |
|
第十一單元 NoSQL數(shù)據(jù)庫(kù)及其設(shè)計(jì) |
NoSQL數(shù)據(jù)庫(kù)的概念 1. 分布式架構(gòu)與CAP理論 2. ACID vs. BASE 3. 強(qiáng)一致性與弱一致性 4. NoSQL數(shù)據(jù)庫(kù)的特點(diǎn) MongoDB數(shù)據(jù)庫(kù) 1. MongoDB數(shù)據(jù)庫(kù)簡(jiǎn)介 2. MongoDB數(shù)據(jù)庫(kù)的概念模型 3. 插入、更新、刪除、查詢操作 案例:利用MongoDB實(shí)現(xiàn)海量存儲(chǔ)與高并發(fā)快速查詢 4. MongoDB數(shù)據(jù)庫(kù)的優(yōu)劣勢(shì)分析與適用范圍 |
第十一單元 Hadoop大數(shù)據(jù)處理技術(shù) |
Hadoop大數(shù)據(jù)處理技術(shù) 1. Hadoop簡(jiǎn)介 2. Hadoop生態(tài)圈 3. Hadoop架構(gòu)及其與傳統(tǒng)架構(gòu)的優(yōu)勢(shì) Hadoop的核心組件 1. 解析HDFS分布式文件系統(tǒng)的運(yùn)行原理 2. 解析MapReduce分布式運(yùn)算框架的運(yùn)行原理 3. MapReduce的優(yōu)劣勢(shì)與適用范圍 案例:WordCount詞頻計(jì)算程序的分析設(shè)計(jì)過(guò)程 Hadoop的生態(tài)圈
1. Hive技術(shù)
2. HBase數(shù)據(jù)庫(kù)
3. Sqoop技術(shù) Hadoop的安裝部署 1. Hadoop的物理部署架構(gòu) 2. Hadoop的技術(shù)選型 3. Hadoop的組件部署結(jié)構(gòu) 面向主題的數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì) 1. 數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)的思路 2. 案例講解設(shè)計(jì)倉(cāng)庫(kù)設(shè)計(jì)的過(guò)程 3. 淺析數(shù)據(jù)挖掘過(guò)程 4. 介紹Spark的設(shè)計(jì)開發(fā) 5. 海量數(shù)據(jù)存儲(chǔ)與查詢方案 案例:BI系統(tǒng)大數(shù)據(jù)轉(zhuǎn)型實(shí)踐 |