課程模塊
知識模塊
授課綱要
模塊一
分布式系統(tǒng)概述
什么是分布式系統(tǒng)
1.集中式系統(tǒng)及其弊病
2.分布式系統(tǒng)的概念及其優(yōu)勢
大型業(yè)務系統(tǒng)架構(gòu)的發(fā)展歷程
1.集中式系統(tǒng)架構(gòu)的設(shè)計
2.多級集中式架構(gòu)及其弊病
3.動靜分離與讀寫分離的設(shè)計
生產(chǎn)型業(yè)務系統(tǒng)的分布式設(shè)計
1.數(shù)據(jù)庫的橫向縱向切分
2.分布式緩存的設(shè)計
3.異步化操作與分布式隊列
生產(chǎn)型業(yè)務系統(tǒng)未來的發(fā)展趨勢
1.微服務的架構(gòu)設(shè)計
2.服務網(wǎng)格ServiceMesh
3.NewSQL數(shù)據(jù)庫
分析型業(yè)務系統(tǒng)的分布式設(shè)計
1.NoSQL數(shù)據(jù)庫
2.基于Hadoop的大數(shù)據(jù)平臺
3.基于Kylin的多維數(shù)據(jù)建模
4.運用ElasticSearch解決海量明細查詢
模塊二
分布式系統(tǒng)技術(shù)專題
分布式緩存
1.本地緩存vs.分布式緩存
2.分布式緩存設(shè)計原理與高可用設(shè)計
3.Redis分布式緩存部署
4.Redis分布式緩存設(shè)計實踐
5.Redis分布式緩存設(shè)計應注意的問題
內(nèi)存數(shù)據(jù)庫
1.內(nèi)存數(shù)據(jù)庫運行原理
2.內(nèi)存數(shù)據(jù)庫設(shè)計選型
3.Redis內(nèi)存數(shù)據(jù)庫設(shè)計實踐
1)內(nèi)存數(shù)據(jù)庫+異步化技術(shù)方案
2)京東訂單系統(tǒng)的優(yōu)化過程
分布式事務
1.分布式事務的兩階段提交
2.TCC方案
1)TCC方案設(shè)計原理
2)阿里的Seata與GTS
3)TCC方案的設(shè)計實現(xiàn)
3.基于消息的分布式事務
1)基于消息的最終一致性
2)設(shè)計實踐及其存在的問題
3)基于半消息的設(shè)計實踐
4)基于消息表的設(shè)計方案
分布式鎖
1.分布式鎖的應用場景及其原理
2.基于數(shù)據(jù)庫的設(shè)計方案
3.基于Redis的設(shè)計方案
1)基于Redis的設(shè)計實踐
2)方案存在的問題
4.基于Zookeeper的設(shè)計方案
1)Zookeeper的設(shè)計原理
2)Zookeeper在服務治理中的應用
3)Zookeeper在大數(shù)據(jù)中的應用
4)Zookeeper在分布式鎖中的設(shè)計實現(xiàn)
5.基于etcd的設(shè)計方案
1)etcd的特點介紹
2)etcd在分布式鎖中的設(shè)計實現(xiàn)
分布式消息隊列
1.異步化操作與分布式消息隊列
2.RabbitMQ,RocketMQ,ActiveMQ與kafka的比較
3.RabbitMQ的設(shè)計實踐
4.Kafka的設(shè)計實踐
分布式數(shù)據(jù)庫
1.RMSDB→NewSQL→NoSQL
2.分布式存儲CAP理論
3.NoSQL數(shù)據(jù)庫及其原理
4.如何實現(xiàn)高并發(fā)大數(shù)據(jù)查詢場景
案例:MongoDB實現(xiàn)大數(shù)據(jù)秒級查詢
5.NewSQL數(shù)據(jù)庫及其原理
6.高并發(fā)寫入的分布式設(shè)計方案
案例:TiDB數(shù)據(jù)庫的分布式方案
模塊三
服務注冊與發(fā)現(xiàn)
服務注冊與發(fā)現(xiàn)的概念與作用
SpringCloudEureka方案
1.SpringCloudEureka的系統(tǒng)架構(gòu)
2.EurekaServer的設(shè)計
3.EurekaClient的設(shè)計
4.服務發(fā)現(xiàn)的設(shè)計
?使用ribbon的設(shè)計
?使用feign的設(shè)計
5.熔斷機制在微服務的設(shè)計實現(xiàn)
?斷路器設(shè)計模式
?線程池隔離、優(yōu)雅降級與熔斷
?Hystrix的斷路器設(shè)計
?服務降級的設(shè)計實踐
6.高可靠設(shè)計與Eureka集群
模塊四
跨語言訪問與服務網(wǎng)格
微服務跨語言訪問的意義
1.Eureka跨語言訪問設(shè)計實踐
2.微服務跨語言訪問的設(shè)計局限
服務網(wǎng)格(ServiceMesh)
1.服務網(wǎng)格的概念及其發(fā)展歷程
2.Linkerd服務網(wǎng)格的設(shè)計原理
3.Istio服務網(wǎng)格的設(shè)計原理
4.螞蟻金服SofaMosn的設(shè)計實踐
5.微博服務網(wǎng)格的設(shè)計實踐
模塊五
微服務網(wǎng)關(guān)
微服務的安全措施與服務網(wǎng)關(guān)設(shè)計
1.多渠道用戶接入
2.請求合法性與用戶鑒權(quán)
3.灰度發(fā)布與金絲雀測試
4.全鏈路壓測
5.流量控制與節(jié)流
1)令牌桶算法、漏桶算法
2)Nginx在接入層的流量控制
3)服務層的流量控制設(shè)計思路
4)節(jié)流的設(shè)計實現(xiàn)
路由網(wǎng)關(guān)(zuul)的設(shè)計
1.智能路由與服務遷移
2.過濾器的設(shè)計與配置
3.Zuul的高可靠設(shè)計
模塊六
微服務層的設(shè)計
微服務架構(gòu)的6種設(shè)計模式
1.聚合模式
案例:電商網(wǎng)站購物功能的設(shè)計
案例:電商網(wǎng)站下單服務的設(shè)計
單一職責原則與領(lǐng)域驅(qū)動設(shè)計
?互聯(lián)網(wǎng)縱向切分在微服務的實現(xiàn)
?縱向切分應當注意的設(shè)計問題
?避免跨庫關(guān)聯(lián)查詢的方案設(shè)計
2.代理模式
案例:電商網(wǎng)站支付功能的設(shè)計思路
3.鏈式模式
4.分支模式
5.異步消息模式
案例:12306的異步化操作
案例:電商網(wǎng)站異步化操作的微服務實現(xiàn)
6.數(shù)據(jù)共享模式
微服務的無狀態(tài)設(shè)計
?Session管理的設(shè)計難題
?微服務的無狀態(tài)設(shè)計
?基于http/rest的無狀態(tài)低耦合通訊
微服務設(shè)計的反模式
1.太多數(shù)據(jù)遷移
2.數(shù)據(jù)共享反模式
3.頻繁交互反模式
模塊七
Docker與容器技術(shù)
Docker簡介
1.Dockervs.虛擬化
2.Docker的運行方式
3.Docker的基本操作
將微服務部署到Docker中
演練:微服務在Docker中的部署過程
練習:模擬構(gòu)建一個微服務系統(tǒng)
模塊八
基于云端的分布式部署與DevOps
DevOps簡介
1.為什么需要DevOps
2.微服務的測試過程
3.微服務的發(fā)布過程
分布式運維
1.Kubernetes的運行原理解析
2.Kubernetes命令與操作
3.Kubernetes的微服務發(fā)布與管理
4.用配置文件在Kubernetes中部署微服務
微服務平臺自動化運維設(shè)計實踐
演示:Git+Jenkins+docker+k8s的自動化分布式部署
模塊九
分布式微服務設(shè)計實踐
演練微服務開發(fā)的整個過程
1.演練單體應用的微服務轉(zhuǎn)型過程
2.微服務開發(fā)的父項目與基礎(chǔ)平臺
3.微服務開發(fā)的多環(huán)境配置
4.高可靠的分布式服務治理
5.前端、聚合層、原子服務層的設(shè)計
6.異步化的微服務調(diào)用
7.服務網(wǎng)關(guān)的設(shè)計與智能路由
微服務架構(gòu)的管理與監(jiān)控
1.配置中心SpringCloudConfig
2.斷路監(jiān)控SpringCloudTurbine
3.鏈路監(jiān)控SpringCloudZipKin
分布式容器部署演練
1.制作Jenkins定時任務
2.上傳Docker私服
3.部署k8s集群
故障檢測與監(jiān)控
模塊十
傳統(tǒng)架構(gòu)的分布式技術(shù)轉(zhuǎn)型
傳統(tǒng)架構(gòu)微服務轉(zhuǎn)型的過程
1.技術(shù)轉(zhuǎn)型
準備工作:Maven→Springboot
整理分層:MVC層與BUS層的分離
建立微服務:注冊中心、服務網(wǎng)關(guān)與微服務
2.業(yè)務拆分
構(gòu)建領(lǐng)域模型與限界上下文
業(yè)務與數(shù)據(jù)庫的縱向切分
練習:將一個傳統(tǒng)架構(gòu)的軟件改造成微服務
初創(chuàng)型企業(yè)的微服務建設(shè)過程
案例:某智慧醫(yī)療系統(tǒng)的建設(shè)過程
1.系統(tǒng)的建設(shè)規(guī)劃
2.系統(tǒng)的分析設(shè)計過程
3.微服務架構(gòu)設(shè)計與對外接口
4.微服務運營平臺的建設(shè)
成熟型企業(yè)開展微服務的思路
1.成熟企業(yè)開展微服務的難題
2.記錄型系統(tǒng)vs.交互型系統(tǒng)
3.在混合云中構(gòu)建交互型系統(tǒng)
案例:某金融企業(yè)向微服務轉(zhuǎn)型的過程
大數(shù)據(jù)+微服務的轉(zhuǎn)型過程
案例:某風控系統(tǒng)的大數(shù)據(jù)+微服務的轉(zhuǎn)型過程
1.該風控系統(tǒng)的背景介紹
2.互聯(lián)網(wǎng)轉(zhuǎn)型帶來的機遇與挑戰(zhàn)
3.后端大數(shù)據(jù)的轉(zhuǎn)型過程
4.前端微服務的轉(zhuǎn)型過程
5.構(gòu)建風險分析模型的AppStore平臺
探討:大數(shù)據(jù)如何與微服務相結(jié)合
許林芳
李金城
徐周
潘俊
武魏巍
凌黎
吳斌
李良德
高圣皓
張珂
黃道雄
袁小勇
甘建榮
