架構(gòu)師
互聯(lián)網(wǎng)
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

高性能高可用分布式自研中臺(tái)架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)

閱文集團(tuán) 技術(shù)部-架構(gòu)師

大型內(nèi)容集團(tuán)技術(shù)專家。行走互聯(lián)網(wǎng)江湖十多載,具有10年以上的系統(tǒng)架構(gòu)經(jīng)驗(yàn)與中間件開發(fā)經(jīng)驗(yàn)。曾任5173架構(gòu)師、攜程國(guó)際機(jī)票計(jì)價(jià)引擎架構(gòu)師。擅長(zhǎng)復(fù)雜業(yè)務(wù)系統(tǒng)架構(gòu)、中間件架構(gòu)與開發(fā)、高性能運(yùn)算、虛擬組織管理等工作,尤其對(duì)分布式存儲(chǔ)與網(wǎng)格計(jì)算頗有研究,目前具有該領(lǐng)域發(fā)明專利一項(xiàng)。領(lǐng)導(dǎo)公司的業(yè)務(wù)中臺(tái)建設(shè),落地微服務(wù)框架構(gòu)建的微服務(wù)系統(tǒng)架構(gòu)。從零到一的支撐起公司億級(jí)年收入的海外站點(diǎn)業(yè)務(wù),目前十億級(jí)年收入的國(guó)內(nèi)站點(diǎn)業(yè)務(wù)也在逐步遷移。10年前作為FastDFS的第一代代碼提交者深入開源,后兼任顧問與講師多次受邀前往全國(guó)各地包括港澳臺(tái)地區(qū)進(jìn)行技術(shù)交流與技術(shù)布道。

大型內(nèi)容集團(tuán)技術(shù)專家。行走互聯(lián)網(wǎng)江湖十多載,具有10年以上的系統(tǒng)架構(gòu)經(jīng)驗(yàn)與中間件開發(fā)經(jīng)驗(yàn)。曾任5173架構(gòu)師、攜程國(guó)際機(jī)票計(jì)價(jià)引擎架構(gòu)師。擅長(zhǎng)復(fù)雜業(yè)務(wù)系統(tǒng)架構(gòu)、中間件架構(gòu)與開發(fā)、高性能運(yùn)算、虛擬組織管理等工作,尤其對(duì)分布式存儲(chǔ)與網(wǎng)格計(jì)算頗有研究,目前具有該領(lǐng)域發(fā)明專利一項(xiàng)。領(lǐng)導(dǎo)公司的業(yè)務(wù)中臺(tái)建設(shè),落地微服務(wù)框架構(gòu)建的微服務(wù)系統(tǒng)架構(gòu)。從零到一的支撐起公司億級(jí)年收入的海外站點(diǎn)業(yè)務(wù),目前十億級(jí)年收入的國(guó)內(nèi)站點(diǎn)業(yè)務(wù)也在逐步遷移。10年前作為FastDFS的第一代代碼提交者深入開源,后兼任顧問與講師多次受邀前往全國(guó)各地包括港澳臺(tái)地區(qū)進(jìn)行技術(shù)交流與技術(shù)布道。

課程費(fèi)用

6800.00 /人

課程時(shí)長(zhǎng)

2

成為教練

課程簡(jiǎn)介

本序列課程主要和大家一起探討在隨需應(yīng)變,快速響應(yīng)的互聯(lián)網(wǎng)大背景下,面對(duì)用戶多分布廣泛、高并發(fā)大流量、安全環(huán)境惡劣易受網(wǎng)絡(luò)攻擊等特殊環(huán)境下,如何在使用廉價(jià)服務(wù)器的情況下,構(gòu)建出一個(gè)即可滿足業(yè)務(wù)的高性能需求,又能達(dá)到5個(gè)9、6個(gè)9的高可用性,還能解決快速迭代需求,穩(wěn)定高效的互聯(lián)網(wǎng)系統(tǒng)中臺(tái)架構(gòu)及其設(shè)計(jì)實(shí)踐方案。

本課程由技術(shù)棧的選型開始引入主題,結(jié)合相應(yīng)的業(yè)務(wù),并且考慮相關(guān)配合團(tuán)隊(duì)的水平、人員組成情況等序列因素,主要從選型比較、解決重點(diǎn)/難點(diǎn)問題、實(shí)現(xiàn)策略、實(shí)施方案的優(yōu)勢(shì)優(yōu)點(diǎn)、成本對(duì)比、實(shí)施過程的經(jīng)驗(yàn)教訓(xùn)、實(shí)施案例及其感想、后期的改進(jìn)與維護(hù)升級(jí)等具體的方面進(jìn)行一個(gè)完整的陳述,重點(diǎn)講述組件之間在分布式的情況下,如何通過各司其職的配合,從而實(shí)現(xiàn)高性能,高可用,高伸縮。
具體技術(shù)方面,本課程主要以自我實(shí)現(xiàn)中臺(tái)為主,使用開源為輔的策略,包括但不局限于:java的IOC、ORM,Restful等框架、JOB調(diào)度系統(tǒng)、ID生成器、HTTP服務(wù)器、DFS分布式文件系統(tǒng)、緩存與存儲(chǔ)系統(tǒng)、分布式協(xié)調(diào)器、配置服務(wù)、通訊協(xié)議、日志監(jiān)控等。
最后我們將討論這些系統(tǒng)是如何與業(yè)務(wù)有機(jī)的結(jié)合案例與當(dāng)時(shí)如此實(shí)施的指導(dǎo)思想,并且大家一起探討實(shí)施過程中如何通過項(xiàng)目實(shí)現(xiàn)“快速響應(yīng)”的控制,從而達(dá)到另外一種層面(對(duì)于項(xiàng)目及源碼的控制層面)的高可用性,這一點(diǎn)往往是被嚴(yán)重忽略的。



目標(biāo)收益

1. 掌握如何從頭到尾設(shè)計(jì)一個(gè)穩(wěn)定、快速、能滿足業(yè)務(wù)需要的系統(tǒng)架構(gòu)方案
2. 掌握如何從無到有的實(shí)現(xiàn)一個(gè)看似不可能自己實(shí)現(xiàn)的中臺(tái)組件
3. 掌握如何有機(jī)的選擇與使用開源或者自主開發(fā)的中臺(tái)組件,將其有機(jī)的整合在一起,從而讓業(yè)務(wù)在分布式的情況下達(dá)到高性能,高可用,高伸縮.
4. 掌握如何控制系統(tǒng)邊界、如何控制因需求追加而導(dǎo)致的軟件復(fù)雜度,如何更好的讓各組件各司其職.
5. 掌握如果控制整個(gè)龐大的系統(tǒng)的一切,包括:團(tuán)隊(duì)、“開發(fā)人員”、“需求人員”等等
6. 了解一般常用開源軟件的優(yōu)缺點(diǎn),面對(duì)業(yè)務(wù)如何舍取,以及如何二次開發(fā)或者新開發(fā)一個(gè)替換它。
7. 了解linux下高性能中臺(tái)組件的開發(fā)方法。

培訓(xùn)對(duì)象

CTO、高級(jí)工程師、架構(gòu)師、中間件開發(fā)人員
對(duì)系統(tǒng)架構(gòu)感興趣的開發(fā)人員

課程大綱

Albianj技術(shù)棧
數(shù)據(jù)聚合與日志統(tǒng)計(jì)
選型比較:1. spring
2. mycat
3. sharing jdbc
4. 各種公司(51)之類的開發(fā)的技術(shù)棧
突出解決的問題:大部分的phper轉(zhuǎn)java
業(yè)務(wù)更改頻繁且時(shí)間要求高
要求down機(jī)時(shí)間短,有指標(biāo)
指導(dǎo)思想:控制項(xiàng)目,控制時(shí)間,控制復(fù)雜度。最關(guān)鍵是控制人
高性能高可用擴(kuò)展海量數(shù)據(jù):
1. 自帶分布式事務(wù)解決方案
2. Bundle機(jī)制解決分離同進(jìn)程不同業(yè)務(wù)
3. 無限平行擴(kuò)展,擴(kuò)容自主化
4. 自帶分庫(kù)分表(數(shù)據(jù)路由)解決海量數(shù)據(jù)問題
5. 自帶加密組件,解決安全問題
6. 自帶漏斗,令牌環(huán)等算法解決防刷,重復(fù)提交等問題
7. 自帶數(shù)據(jù)庫(kù)調(diào)優(yōu)模板,解決批量數(shù)據(jù)提交問題
scher系統(tǒng) 選型比較:quartz corn4j
突出解決的問題:job調(diào)度
job之間不能相互影響,并且可以方便的kill有問題的job
v1版本的quartz為啥有問題
指導(dǎo)思想:開發(fā)人員最簡(jiǎn)單,易使用
復(fù)雜配置全部scher自帶
進(jìn)程單位分開,互不干涉
高性能高可用擴(kuò)展海量數(shù)據(jù):1. 分布式模式解決了job的高擴(kuò)展與高性能
2. arbiter解決了job的高可用問題
3. 自研分配算法解決了job的負(fù)載均衡問題
4. chunk機(jī)制解決了job的數(shù)量與業(yè)務(wù)交叉問題
精衛(wèi)系統(tǒng) 選型比較:當(dāng)時(shí)沒有參照,從scher引申而來
突出解決的問題:無法與scher在一起,容易造成相互影響
job需要和scher兼容
指導(dǎo)思想:讓他單身吧,不要被scher影響
高性能高可用獲取海量資源:
1. 分布式模式解決了job的高擴(kuò)展與高性能
2. arbiter解決了job的高可用問題
3. 自研分配算法解決了job的負(fù)載均衡問題
4. chunk機(jī)制解決了job的數(shù)量與業(yè)務(wù)交叉問題
配置服務(wù) 選型比較:zookeeper
突出解決的問題:配置文件上線麻煩
秒更或者短時(shí)間(3s)之內(nèi)
指導(dǎo)思想:防止泄露,不停機(jī)更新配置
高性能高可用高擴(kuò)展海量數(shù)據(jù):
1. dispatcher解決了高可用高擴(kuò)展問題
2. 全局pull模式解決服務(wù)器高性能問題
3. 版本號(hào)解決了高可用問題
4. sharingmemory解決了業(yè)務(wù)機(jī)高可用問題
DFS分布式文件系統(tǒng) 選型比較:1. mfs
2. fastdfs
3. TFS
4. ceph
突出解決的問題:頻繁的更改
全部是小文件,99.9999是3-5k
數(shù)量超級(jí)大
指導(dǎo)思想:解決特殊業(yè)務(wù)(小文件太多)的問題
比如無人干預(yù)運(yùn)行
高性能高可用獲取海量數(shù)據(jù):
1. event nio編程解決高性能問題
2. 角色設(shè)計(jì)解決高擴(kuò)展高可用性問題
3. 無鎖編程解決單臺(tái)服務(wù)器負(fù)債問題
4. 合并隨機(jī)寫解決性能問題
5. chunkfile機(jī)制解決磁盤碎片與存儲(chǔ)海量數(shù)據(jù)問題
6. 軟負(fù)債解決高可用性
7. GISSOP算法解決同步數(shù)據(jù)完整性問題
http服務(wù) 選型比較:沒有現(xiàn)成的,唯一的可能就是寫ngx或者類似于這樣的插件
突出解決的問題:1.圖片,音頻,視頻
2. 需要鏈接我們的DFS
指導(dǎo)思想:這個(gè)純粹是好玩,并且想玩一下JNI,興趣孜然
高性能高可用擴(kuò)展海量數(shù)據(jù):
1. C網(wǎng)絡(luò)編程解決高性能問題
2. JNI解決JAVA與C之間的通訊問題
3. JAVA解決業(yè)務(wù)的多變問題
id生成器 選型比較:twrrite snowflow UUID
突出解決的問題:分庫(kù)分表需要使用
主鍵與排序
人肉眼可識(shí)別
指導(dǎo)思想:易排錯(cuò),內(nèi)部人員能第一時(shí)間看懂
高性能高可用獲取海量數(shù)據(jù):1. ID服務(wù)器橫向擴(kuò)展
2. 多主模式解決性能與高可用問題
3. 事件編程解決10K,100K的鏈接高并發(fā)問題
4. ID實(shí)現(xiàn)分庫(kù)分表路由功能
lest KV存儲(chǔ) 選型比較:redis
突出解決的問題:有持久化
qps單機(jī)可以到3w以上
支持版本化與同步
指導(dǎo)思想:持久化,無人干預(yù),可以接受相比redis有10-20%左右的性能差距
高性能高可用獲取海量數(shù)據(jù):1. 多主設(shè)計(jì)解決了高可用、高性能問題
2. 路徑算法解決了高性能問題
3. voctorlocker算法解決版本問題
4.list和map的存儲(chǔ)機(jī)制解決了內(nèi)存數(shù)據(jù)平行化存儲(chǔ)問題
5.bsearch算法解決了獲取數(shù)據(jù)的性能問題
lax分布式協(xié)調(diào)器 選型比較:zookeeper
突出解決的問題:機(jī)房網(wǎng)絡(luò)不穩(wěn)定,選舉就是噩夢(mèng)
性能不高,擴(kuò)展不方便
指導(dǎo)思想:zookeeper太龐大,太不好用,低網(wǎng)絡(luò)要求太高,
沒有主從,沒有主從,沒有主從
高性能高可用獲取海量數(shù)據(jù):1. 無主無投票機(jī)制解決了網(wǎng)絡(luò)環(huán)境下的高可用問題
2. 隨機(jī)算法解決了分布式下的碰撞問題
3. 多寫機(jī)制解決了高擴(kuò)展問題
通訊協(xié)議 選型比較:messagepack bufferprotocol之類的
突出解決的問題:不喜歡編譯型
有一個(gè)支持任何語言的查找模型
指導(dǎo)思想:對(duì)開發(fā)人員無感知
高性能高可用獲取海量數(shù)據(jù):1. 無編譯解決易用性問題
2. 無數(shù)量限制解決了傳輸數(shù)據(jù)量問題
3. 二進(jìn)制協(xié)議解決了高性能問題
總結(jié)陳詞 系統(tǒng)設(shè)計(jì)總結(jié),討論人、團(tuán)隊(duì)、業(yè)務(wù)、架構(gòu)、系統(tǒng)、bug之間的關(guān)系
Albianj技術(shù)棧
數(shù)據(jù)聚合與日志統(tǒng)計(jì)
選型比較:1. spring
2. mycat
3. sharing jdbc
4. 各種公司(51)之類的開發(fā)的技術(shù)棧
突出解決的問題:大部分的phper轉(zhuǎn)java
業(yè)務(wù)更改頻繁且時(shí)間要求高
要求down機(jī)時(shí)間短,有指標(biāo)
指導(dǎo)思想:控制項(xiàng)目,控制時(shí)間,控制復(fù)雜度。最關(guān)鍵是控制人
高性能高可用擴(kuò)展海量數(shù)據(jù):
1. 自帶分布式事務(wù)解決方案
2. Bundle機(jī)制解決分離同進(jìn)程不同業(yè)務(wù)
3. 無限平行擴(kuò)展,擴(kuò)容自主化
4. 自帶分庫(kù)分表(數(shù)據(jù)路由)解決海量數(shù)據(jù)問題
5. 自帶加密組件,解決安全問題
6. 自帶漏斗,令牌環(huán)等算法解決防刷,重復(fù)提交等問題
7. 自帶數(shù)據(jù)庫(kù)調(diào)優(yōu)模板,解決批量數(shù)據(jù)提交問題
scher系統(tǒng)
選型比較:quartz corn4j
突出解決的問題:job調(diào)度
job之間不能相互影響,并且可以方便的kill有問題的job
v1版本的quartz為啥有問題
指導(dǎo)思想:開發(fā)人員最簡(jiǎn)單,易使用
復(fù)雜配置全部scher自帶
進(jìn)程單位分開,互不干涉
高性能高可用擴(kuò)展海量數(shù)據(jù):1. 分布式模式解決了job的高擴(kuò)展與高性能
2. arbiter解決了job的高可用問題
3. 自研分配算法解決了job的負(fù)載均衡問題
4. chunk機(jī)制解決了job的數(shù)量與業(yè)務(wù)交叉問題
精衛(wèi)系統(tǒng)
選型比較:當(dāng)時(shí)沒有參照,從scher引申而來
突出解決的問題:無法與scher在一起,容易造成相互影響
job需要和scher兼容
指導(dǎo)思想:讓他單身吧,不要被scher影響
高性能高可用獲取海量資源:
1. 分布式模式解決了job的高擴(kuò)展與高性能
2. arbiter解決了job的高可用問題
3. 自研分配算法解決了job的負(fù)載均衡問題
4. chunk機(jī)制解決了job的數(shù)量與業(yè)務(wù)交叉問題
配置服務(wù)
選型比較:zookeeper
突出解決的問題:配置文件上線麻煩
秒更或者短時(shí)間(3s)之內(nèi)
指導(dǎo)思想:防止泄露,不停機(jī)更新配置
高性能高可用高擴(kuò)展海量數(shù)據(jù):
1. dispatcher解決了高可用高擴(kuò)展問題
2. 全局pull模式解決服務(wù)器高性能問題
3. 版本號(hào)解決了高可用問題
4. sharingmemory解決了業(yè)務(wù)機(jī)高可用問題
DFS分布式文件系統(tǒng)
選型比較:1. mfs
2. fastdfs
3. TFS
4. ceph
突出解決的問題:頻繁的更改
全部是小文件,99.9999是3-5k
數(shù)量超級(jí)大
指導(dǎo)思想:解決特殊業(yè)務(wù)(小文件太多)的問題
比如無人干預(yù)運(yùn)行
高性能高可用獲取海量數(shù)據(jù):
1. event nio編程解決高性能問題
2. 角色設(shè)計(jì)解決高擴(kuò)展高可用性問題
3. 無鎖編程解決單臺(tái)服務(wù)器負(fù)債問題
4. 合并隨機(jī)寫解決性能問題
5. chunkfile機(jī)制解決磁盤碎片與存儲(chǔ)海量數(shù)據(jù)問題
6. 軟負(fù)債解決高可用性
7. GISSOP算法解決同步數(shù)據(jù)完整性問題
http服務(wù)
選型比較:沒有現(xiàn)成的,唯一的可能就是寫ngx或者類似于這樣的插件
突出解決的問題:1.圖片,音頻,視頻
2. 需要鏈接我們的DFS
指導(dǎo)思想:這個(gè)純粹是好玩,并且想玩一下JNI,興趣孜然
高性能高可用擴(kuò)展海量數(shù)據(jù):
1. C網(wǎng)絡(luò)編程解決高性能問題
2. JNI解決JAVA與C之間的通訊問題
3. JAVA解決業(yè)務(wù)的多變問題
id生成器
選型比較:twrrite snowflow UUID
突出解決的問題:分庫(kù)分表需要使用
主鍵與排序
人肉眼可識(shí)別
指導(dǎo)思想:易排錯(cuò),內(nèi)部人員能第一時(shí)間看懂
高性能高可用獲取海量數(shù)據(jù):1. ID服務(wù)器橫向擴(kuò)展
2. 多主模式解決性能與高可用問題
3. 事件編程解決10K,100K的鏈接高并發(fā)問題
4. ID實(shí)現(xiàn)分庫(kù)分表路由功能
lest KV存儲(chǔ)
選型比較:redis
突出解決的問題:有持久化
qps單機(jī)可以到3w以上
支持版本化與同步
指導(dǎo)思想:持久化,無人干預(yù),可以接受相比redis有10-20%左右的性能差距
高性能高可用獲取海量數(shù)據(jù):1. 多主設(shè)計(jì)解決了高可用、高性能問題
2. 路徑算法解決了高性能問題
3. voctorlocker算法解決版本問題
4.list和map的存儲(chǔ)機(jī)制解決了內(nèi)存數(shù)據(jù)平行化存儲(chǔ)問題
5.bsearch算法解決了獲取數(shù)據(jù)的性能問題
lax分布式協(xié)調(diào)器
選型比較:zookeeper
突出解決的問題:機(jī)房網(wǎng)絡(luò)不穩(wěn)定,選舉就是噩夢(mèng)
性能不高,擴(kuò)展不方便
指導(dǎo)思想:zookeeper太龐大,太不好用,低網(wǎng)絡(luò)要求太高,
沒有主從,沒有主從,沒有主從
高性能高可用獲取海量數(shù)據(jù):1. 無主無投票機(jī)制解決了網(wǎng)絡(luò)環(huán)境下的高可用問題
2. 隨機(jī)算法解決了分布式下的碰撞問題
3. 多寫機(jī)制解決了高擴(kuò)展問題
通訊協(xié)議
選型比較:messagepack bufferprotocol之類的
突出解決的問題:不喜歡編譯型
有一個(gè)支持任何語言的查找模型
指導(dǎo)思想:對(duì)開發(fā)人員無感知
高性能高可用獲取海量數(shù)據(jù):1. 無編譯解決易用性問題
2. 無數(shù)量限制解決了傳輸數(shù)據(jù)量問題
3. 二進(jìn)制協(xié)議解決了高性能問題
總結(jié)陳詞
系統(tǒng)設(shè)計(jì)總結(jié),討論人、團(tuán)隊(duì)、業(yè)務(wù)、架構(gòu)、系統(tǒng)、bug之間的關(guān)系

活動(dòng)詳情

提交需求