第90篇
極客時(shí)間《從0開始學(xué)架構(gòu)》課程筆記咳焚。
標(biāo)準(zhǔn)技術(shù)框架
互聯(lián)網(wǎng)的標(biāo)準(zhǔn)技術(shù)架構(gòu)
用戶層技術(shù)
1浆熔、用戶管理
- 用戶管理的第一個(gè)目標(biāo):單點(diǎn)登錄(SSO)旨指,又叫統(tǒng)一登錄厦取。
- 單點(diǎn)登錄的技術(shù)實(shí)現(xiàn)手段較多吧雹,例如 cookie尔苦、JSONP谅河、token 等框都,目前最成熟的開源單點(diǎn)登錄方案當(dāng)屬 CAS
- 用戶管理的第二個(gè)目標(biāo):授權(quán)登錄。現(xiàn)在最流行的授權(quán)登錄就是 OAuth 2.0 協(xié)議霎箍,基本上已經(jīng)成為了事實(shí)上的標(biāo)準(zhǔn)
- 業(yè)務(wù)做大成為了平臺(tái)后奇钞,開放成為了促進(jìn)業(yè)務(wù)進(jìn)一步發(fā)展的手段,需要允許第三方應(yīng)用接入漂坏,所以需要授權(quán)登錄
CAS架構(gòu)
2. 消息推送
- 消息推送根據(jù)不同的途徑蛇券,分為短信、郵件樊拓、站內(nèi)信、App 推送塘慕,短信需要依賴運(yùn)營商的短信接口筋夏,郵件需要依賴郵件服務(wù)商的郵件接口,站內(nèi)信是系統(tǒng)提供的消息通知功能
- App 目前主要分為 iOS 和 Android 推送图呢,iOS 系統(tǒng)比較規(guī)范和封閉条篷,基本上只能使用蘋果的 APNS
- Android推送比較特殊骗随, 在國外用 GCM 和 APNS ;在國內(nèi)Android 的消息推送比較雜亂赴叹,有實(shí)力的大廠都會(huì)自己實(shí)現(xiàn)一套消息推送機(jī)制鸿染,例如阿里云移動(dòng)推送、騰訊信鴿推送乞巧、百度云推送涨椒;也有第三方公司提供商業(yè)推送服務(wù),例如友盟推送绽媒、極光推送等
- 消息推送主要包含 3 個(gè)功能:設(shè)備管理(唯一標(biāo)識(shí)蚕冬、注冊(cè)、注銷)是辕、連接管理和消息管理囤热,分別對(duì)應(yīng)的技術(shù)難點(diǎn)是海量設(shè)備和用戶管理、連接被袢活旁蔼、消息管理
3. 存儲(chǔ)云、圖片云
- 互聯(lián)網(wǎng)場(chǎng)景下用戶需要上傳多種類型的文件數(shù)據(jù)疙教,包括圖片棺聊、視頻等,特點(diǎn)是數(shù)據(jù)量大松逊、文件體積小躺屁、訪問有時(shí)效性
- 存儲(chǔ)云和圖片云通常的實(shí)現(xiàn)都是“CDN + 小文件存儲(chǔ)”,現(xiàn)在有了“云”之后经宏,直接買云服務(wù)可能是最快也是最經(jīng)濟(jì)的方式
- 圖片涉及的業(yè)務(wù)包括裁剪犀暑、壓縮、美化烁兰、審核耐亏、水印等處理,因此通常情況下圖片云會(huì)拆分為獨(dú)立的系統(tǒng)對(duì)用戶提供服務(wù)
業(yè)務(wù)層技術(shù)
- 業(yè)務(wù)復(fù)雜度越來越高沪斟。也就是說广辰,業(yè)務(wù)層面對(duì)的主要技術(shù)挑戰(zhàn)是“復(fù)雜度”
- 復(fù)雜度越來越高的一個(gè)主要原因就是系統(tǒng)越來越龐大,業(yè)務(wù)越來越多主之。唯一方法就是“拆”择吊,化整為零、分而治之槽奕,將整體復(fù)雜性分散到多個(gè)子業(yè)務(wù)或者子系統(tǒng)里
- 隨著子系統(tǒng)越來越多几睛,會(huì)凸顯一個(gè)新的復(fù)雜度問題:子系統(tǒng)數(shù)量太多,已經(jīng)沒有人能夠說清楚業(yè)務(wù)的調(diào)用流程了粤攒,出了問題排查也會(huì)特別復(fù)雜
- 解決方法是“合”所森,但不是合并為一個(gè)統(tǒng)一系統(tǒng)囱持,而是按照“高內(nèi)聚低耦合”原則將職責(zé)關(guān)聯(lián)比較強(qiáng)的子系統(tǒng)合成一個(gè)虛擬業(yè)務(wù)域,然后通過網(wǎng)關(guān)對(duì)外統(tǒng)一呈現(xiàn)
虛擬業(yè)務(wù)域