開源毫秒服務(wù)引擎的設(shè)計(jì) 與實(shí)現(xiàn)

開源毫秒服務(wù)引擎的設(shè)計(jì) 與實(shí)現(xiàn)

ID:8268106

大小:5.71 MB

頁數(shù):49頁

時(shí)間:2018-03-15

開源毫秒服務(wù)引擎的設(shè)計(jì) 與實(shí)現(xiàn)_第1頁
開源毫秒服務(wù)引擎的設(shè)計(jì) 與實(shí)現(xiàn)_第2頁
開源毫秒服務(wù)引擎的設(shè)計(jì) 與實(shí)現(xiàn)_第3頁
開源毫秒服務(wù)引擎的設(shè)計(jì) 與實(shí)現(xiàn)_第4頁
開源毫秒服務(wù)引擎的設(shè)計(jì) 與實(shí)現(xiàn)_第5頁
資源描述:

《開源毫秒服務(wù)引擎的設(shè)計(jì) 與實(shí)現(xiàn)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、開源毫秒服務(wù)引擎的設(shè)計(jì)與實(shí)現(xiàn)QQ團(tuán)隊(duì)開發(fā)運(yùn)營實(shí)踐楊宇毫秒服務(wù)引擎技術(shù)負(fù)責(zé)人目錄QQ后臺團(tuán)隊(duì)演進(jìn)毫秒思路毫秒功能毫秒亮點(diǎn)目錄QQ后臺團(tuán)隊(duì)演進(jìn)毫秒思路毫秒功能毫秒亮點(diǎn)QQ后臺團(tuán)隊(duì)演進(jìn)青銅時(shí)代約50人的開發(fā)團(tuán)隊(duì),開發(fā)運(yùn)營高度依賴開發(fā)和運(yùn)維白銀時(shí)代約200人的開發(fā)團(tuán)隊(duì),重點(diǎn)服務(wù)集中化,開發(fā)運(yùn)營流程規(guī)范化黃金時(shí)代對美好的追求讓我們創(chuàng)造了毫秒青銅時(shí)代模塊A基于Tag-Length-Value多進(jìn)程異步框架的二進(jìn)制協(xié)議后端模塊B獲取后端B的可用實(shí)例定期獲取模塊模塊B路模塊B路由AgentB路由配置更新由配置中心模塊A的一個(gè)實(shí)例模塊B的一個(gè)實(shí)例名字發(fā)現(xiàn)和路由服務(wù)模塊A多進(jìn)程異步框架每個(gè)后端模

2、塊提供自己的AgentAgent標(biāo)準(zhǔn)化:目錄/配置/共享內(nèi)存id沖突各個(gè)Agent容錯(cuò)能力不一模塊B路由0Agent模塊B路由當(dāng)模塊需要調(diào)用10+個(gè)后端模塊時(shí)1Agent開發(fā)/運(yùn)維集體跳起來了...模塊B路由nAgent模塊A的一臺服務(wù)器Tag-Length-Value協(xié)議根據(jù)Tag進(jìn)行擴(kuò)展,如獲取用戶的簡單資料請求:dwQQ+wTagNum+wTag1+…+wTagN回包:wTagNum+(wTag1+wLen1+sValue1)+…+(wTagN+wLenN+sValueN)沒有IDL化,無法自動生成打解包代碼重復(fù)代碼無法體現(xiàn)程序員的“價(jià)值”各種奇葩的bugTag-Len

3、gth-Value協(xié)議根據(jù)Tag進(jìn)行擴(kuò)展,如獲取用戶的簡單資料請求:dwQQ+wTagNum+wTag1+…+wTagN回包:wTagNum+(wTag1+wLen1+sValue1)+…+(wTagN+wLenN+sValueN)請求回包c(diǎn)harbuf[64]={0};structUserBasicInfochar*p=buf;{PACK_PUT_UINT32(p,dwQQ);p+=4;std::stringsNick;PACK_PUT_UINT16(p,Tags.size());p+=2;uint16_twFaceId;for(autoit=Tags.begin();it

4、!=uint32_tdwBirthDate;Tags.end();it++)};{…PACK_PUT_UINT16(p,*it);p+=2;for(uint16_ti=0;i

5、一seqiPkgLen){ctx->seq=gen_seq();if(iID==ModuleB_ID){//后端模塊B請求打包,填入seqUnPackModuleB(pPkg,iPkgLen);PackModuleB(ctx->seq,req_str);//邏輯繼續(xù)處理...//通過AgentAPI獲取后端模塊B的地址}GetAddr(ModuleB_ID,&(ctx.srvaddr));DelContext(ctx);//框架異步發(fā)包API}AsyncSend(ModuleB_ID,ctx,req_str);//框架異步超時(shí)處理流程intHandleTimeout(Cont

6、ext*ctx,intiID){}當(dāng)一個(gè)業(yè)務(wù)邏輯需要調(diào)用10+個(gè)后端模塊時(shí),代碼復(fù)雜度成幾何倍數(shù)上升!青銅時(shí)代反思優(yōu)點(diǎn)缺點(diǎn)可運(yùn)維性差;Agent容錯(cuò)能力參差不名字發(fā)現(xiàn)服務(wù)和路由服務(wù)服務(wù)容錯(cuò)齊TLV協(xié)議可擴(kuò)展強(qiáng)重復(fù)編碼隨業(yè)務(wù)流程復(fù)雜度增加,代碼可讀性異步IO遠(yuǎn)程調(diào)用高性能和可維護(hù)性隨成倍數(shù)下降監(jiān)控點(diǎn)、告警點(diǎn)設(shè)置依賴開發(fā)意識;監(jiān)控和告警業(yè)務(wù)定制上報(bào);短信和郵件告警告警多運(yùn)維累日志有本地和遠(yuǎn)程日志;有染色能力定位問題效率低服務(wù)路徑/命名/配置/工具/開發(fā)自由發(fā)揮J運(yùn)維低效文檔等沒有統(tǒng)一標(biāo)準(zhǔn)白銀時(shí)代模塊AProtobuf協(xié)議多進(jìn)程協(xié)程框架后端模塊B獲取后端服務(wù)的可用實(shí)例名字發(fā)現(xiàn)和路由

7、Agent后端服務(wù)擴(kuò)模塊A的一個(gè)實(shí)例縮容更新路由模塊B的一個(gè)實(shí)例定期更新后端服務(wù)的路由配置名字發(fā)業(yè)務(wù)樹發(fā)布管理現(xiàn)和路統(tǒng)一監(jiān)控統(tǒng)一日志由服務(wù)集中化服務(wù)白銀時(shí)代反思RPC!RPC!RPC!標(biāo)準(zhǔn)化開發(fā)運(yùn)營體系積重難返黃金時(shí)代模塊A多進(jìn)程協(xié)程RPC框架ProtobufRPC協(xié)議后端模塊B獲取后端服務(wù)的可用實(shí)例名字發(fā)現(xiàn)和路由Agent后端服務(wù)擴(kuò)模塊A的一個(gè)實(shí)例縮容更新路由模塊B的一個(gè)實(shí)例定期更新后端服務(wù)的路由配置名字發(fā)集中化業(yè)務(wù)樹發(fā)布管理現(xiàn)和路統(tǒng)一監(jiān)控統(tǒng)一日志控制臺由服務(wù)集中化服務(wù)目錄QQ后臺團(tuán)隊(duì)演進(jìn)毫秒思路毫秒

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。