新浪微博技術(shù)專家張雷:微博服務(wù)化的實(shí)踐與演進(jìn)
原創(chuàng)【51CTO.com原創(chuàng)稿件】服務(wù)化不是什么新鮮話題,很多公司都實(shí)現(xiàn)了不同程度的服務(wù)化架構(gòu),伴隨著Docker容器化的大規(guī)模應(yīng)用,服務(wù)化實(shí)施效率不斷提高,成本也進(jìn)一步降低,服務(wù)化依然是整體架構(gòu)中需要重點(diǎn)考慮的問題之一。RPC框架作為服務(wù)化中重要的服務(wù)組件,在不同場景中面對的問題與需要解決的問題也不盡相同,在容器化的云時代,對RPC框架也提出了更高的要求。
2017年4月14日-15日,由51CTO主辦的WOTA全球架構(gòu)與運(yùn)維技術(shù)峰會在北京富力萬麗酒店隆重召開。本次WOTA設(shè)置了15大前沿?zé)狳c(diǎn)技術(shù)論壇,60+來自Google、LinkedIn、百度、阿里巴巴、騰訊、新浪等海內(nèi)外一線公司的技術(shù)大咖將帶來超過50個歷經(jīng)沉淀的架構(gòu)實(shí)戰(zhàn)心得與成功經(jīng)驗(yàn)分享案例,攜手打造歷時2天的行業(yè)***技術(shù)盛會。
在4月15日上午WOTA2017分會場《微服務(wù)架構(gòu)實(shí)踐》,新浪微博技術(shù)專家、MotanRPC框架技術(shù)負(fù)責(zé)人張雷進(jìn)行了主題為《微博服務(wù)化的實(shí)踐與演進(jìn)》的精彩演講。那么,微博服務(wù)化究竟是怎樣做的?微博做服務(wù)化的過程中遇到了哪些坑?用什么樣的方法解決的?演講結(jié)束,記者***時間采訪了他,就這一系列問題進(jìn)行了深入交流。
新浪微博的服務(wù)化
目前,微博的服務(wù)化體系中有上百的業(yè)務(wù)線,運(yùn)行著有上千個服務(wù),每天完成萬億次的RPC服務(wù)調(diào)用和數(shù)百億的API調(diào)用。單個服務(wù)的server規(guī)模從幾臺到數(shù)百臺,個別服務(wù)的client數(shù)量達(dá)到上千臺。
張雷表示,微博的服務(wù)化有許多的服務(wù)組件組成,主要包括DCPdocker容器化平臺,負(fù)責(zé)服務(wù)的動態(tài)部署和回收,是服務(wù)化體系的堅(jiān)實(shí)基礎(chǔ);以及Motan RPC 開源框架,提供了豐富的服務(wù)治理功能,是服務(wù)化體系中各服務(wù)交互的主要方式;vintage是服務(wù)的注冊中心,提供服務(wù)注冊、訂閱以及命名服務(wù),支持動、靜態(tài)配置的變更通知;cacheService是資源層服務(wù)化組件,基于motan框架實(shí)現(xiàn)了memcache、redis、mcq等資源層的透明化服務(wù)。其他還有一些相關(guān)的trace、監(jiān)控、運(yùn)維系統(tǒng)等,這些共同構(gòu)成了微博的服務(wù)化體系。
微博服務(wù)化過程中遇到的那些坑
張雷表示,新浪微博在服務(wù)化過程中,曾遇到過很多坑。微博的服務(wù)化并不是一下就有了混合云的服務(wù)方式,中間主要經(jīng)歷了以下幾個階段:
服務(wù)化發(fā)展的每一步都會遇到一些具體的問題,例如在***個階段的時候,為了解決資源利用的***化,這時候選擇了把服務(wù)耦合在一起。第二個階段,因?yàn)榉?wù)成長到了一定的規(guī)模,就需要選擇把不同的公共服務(wù)進(jìn)行解耦。第三個階段,就是做容器化的時候,需要提供一個動態(tài)的彈性的快速擴(kuò)容的能力。總之,在每一個階段都是為了解決上一個階段遺留的問題,這個階段遺留的一些問題,當(dāng)規(guī)模發(fā)展到一定的程度就會積累,這就是上一階段留給下一階段的坑,下一階段用自身技術(shù)的發(fā)展,去把上一階段的坑填平。為了不讓坑過深,導(dǎo)致掉進(jìn)去出不來。新浪微博通過灰度測試等技術(shù),在問題萌芽狀態(tài)就著手解決。
高性能輕量級的MotanPRC框架
2016年,新浪微博開源了MotanPRC,MotanPRC是一個高性能輕量級的RPC框架,它能夠提供非常強(qiáng)的擴(kuò)展能力,很適合不同的企業(yè)進(jìn)行二次的開發(fā)。說它輕量級是因?yàn)樗募軜?gòu),還有代碼的規(guī)范性等都非常的簡潔,學(xué)習(xí)成本和后面的維護(hù)成本非常低,并且能夠針對不同使用方的使用場景提供擴(kuò)展的能力。
因?yàn)楹芏嗳嗽谑褂肦PC的框架時,發(fā)現(xiàn)都要跟自己原有的系統(tǒng)進(jìn)行一個有機(jī)的結(jié)合,很少做到一個開源框架開箱即用,其實(shí)這個是很難做到的。所以或多或少都會做一些改進(jìn)改造,MoTan框架就非常的適合這種二次開發(fā)。所以,新浪微博希望把MoTan的RPC框架,自身提供服務(wù)的優(yōu)質(zhì)能力,還有高性能RPC調(diào)用能力,把這部分功能能夠提供給廣大的朋友們?nèi)?fù)用。
采訪***,談及MotanRPC框架技術(shù)未來的發(fā)展規(guī)劃,張雷表示:“從最開始只完成基礎(chǔ)的調(diào)用,到簡單的服務(wù)治理,到支持指令進(jìn)行一個流量控制,以及到目前我們現(xiàn)在正在做的跨語言的服務(wù)化統(tǒng)一治理,MotanRPC框架一直在不斷的發(fā)展。目前,我們現(xiàn)在正在做跨語言的服務(wù)化統(tǒng)一治理。后續(xù)的方向,我們希望這個框架成為一個跨語言的服務(wù)治理框架,它不簡簡單單的是一個RPC的調(diào)用框架,更是一個服務(wù)治理框架,最終在跨語言方面發(fā)力來進(jìn)行更多的一些研發(fā)工作。”
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為51CTO.com】