新聞中心
【稿件】2017年12月01日-02日,由主辦的WOTD全球軟件開發(fā)技術(shù)峰會將在深圳中州萬豪酒店隆重舉行。本次峰會以軟件開發(fā)為主題,數(shù)十位專家級嘉賓將帶來多場精彩的技術(shù)內(nèi)容分享。屆時,新浪微博研發(fā)中心平臺高級系統(tǒng)研發(fā)工程師溫情將在微服務與容器技術(shù)專場帶來主題為"基于Docker的微博直播互動微服務架構(gòu)"的精彩演講,屆時他將與來賓分享如何利用當下的技術(shù)熱門話題‘微服務’,設計出一個穩(wěn)定的支持百萬在線的微博直播互動微服務架構(gòu)。誠邀您蒞臨大會,與我們共享技術(shù)帶來的喜悅。

會前,記者采訪了溫情,針對微服務架構(gòu)應用,微博直播互動微服務架構(gòu)設計等內(nèi)容分享了自己的經(jīng)驗。
【講師簡介】
微博-研發(fā)中心平臺高級系統(tǒng)研發(fā)工程師溫情
溫情,微博研發(fā)中心平臺高級系統(tǒng)研發(fā)工程師,從事微博視頻和通訊相關系統(tǒng)的研發(fā)。當前負責微博直播消息互動系統(tǒng)的研發(fā)。個人推崇高可用,可彈性伸縮,低耦合的微服務架構(gòu)設計。技術(shù)上擅長消息通訊方向,針對系統(tǒng)應對突增流量和高并發(fā)方面有豐富的實踐經(jīng)驗。
我們?yōu)槭裁葱枰⒎占軜?gòu)?
微服務(MicroServices)架構(gòu)是當前互聯(lián)網(wǎng)業(yè)界的一個技術(shù)熱點,我們究竟為什么需要微服務架構(gòu)?它能解決哪些問題?
對此,溫情認為,微服務架構(gòu)可以解決兩大難題:
一方面,在一個系統(tǒng)功能比較單一的情況下,用單體式的方式進行開發(fā)部署是沒有問題的,但是隨著業(yè)務需求增多,復雜度增高,任何一次小需求的變更都需要進行打包上線、測試、部署,導致開發(fā)團隊難以進行敏捷開發(fā),每次添加新功能和修復bug都會變得非常耗時。一個應用越復雜,依賴的資源越多,啟動速度越慢,難以實現(xiàn)快速擴展。
另一方面,隨著開發(fā)人員越來越多,維護同一個應用,任何一個人的嚴重bug,例如內(nèi)存泄漏等問題,都會導致整個服務不可用。
而微服務架構(gòu)可以解決這些問題,所以微服務架構(gòu)應運而生了。
微服務架構(gòu)的優(yōu)勢與不足
事物的存在是具有兩面性的,微服務架構(gòu)也一樣,存在著優(yōu)勢和不足。溫情表示,微服務架構(gòu)的優(yōu)勢與不足表現(xiàn)的都很明顯。
優(yōu)勢在于:***,通過服務劃分的方式,解決了復雜性問題。第二,每個微服務獨立開發(fā),不同的開發(fā)團隊可以用不同的語言,不同的技術(shù)實現(xiàn)。第三,每個微服務獨立部署,獨立擴展,減少服務之間依賴,同時不同服務的類型是不同的,有些是內(nèi)存性,有些是CPU性,可根據(jù)服務類型選擇不同類型的服務器。
不足在于:***,相互依賴的服務之間的通信問題,可能會因為網(wǎng)絡等因素而增加新的開銷。第二,微服務拆分后,服務規(guī)模的增加,提高了運維的難度。第三,任何請求,在依賴的服務中都可能出錯,排查問題的難度增加。
溫情建議,雖然微服務架構(gòu)有著很明顯的優(yōu)勢,但是企業(yè)還需根據(jù)實際情況來考慮是否應用微服務。尤其在企業(yè)系統(tǒng)復雜度不高,業(yè)務不復雜的場景下,盡量還是用單體式開發(fā)。而千萬不要為了“微服務”而強行進行微服務化。微服務不僅僅對開發(fā)人員提出了新的要求,同時也需要更加強大的運維團隊支持。在系統(tǒng)復雜度不高的場景下,引入微服務,可能會成倍地增加維護的成本。同時也可能會引起難以快速響應需求,線上問題難以快速定位等問題。
微博直播互動微服務架構(gòu)設計需要注意的那些細節(jié)
談及微博直播互動微服務架構(gòu)的設計,溫情以目前正負責的微博識別消息互動系統(tǒng)的研發(fā)項目為例,對架構(gòu)設計需要注意的細節(jié)等問題進行了深入的分析解讀。
微博直播消息互動系統(tǒng)是一個相對比較復雜的系統(tǒng),在設計上有很多特殊的需求。首先,在微服務化過程中,研發(fā)團隊會比較注意核心服務和非核心服務的劃分,從而在服務遇到瓶頸時,可以通過降級的方式保證核心業(yè)務不受影響。其次,對容易瓶頸的服務進行劃分,減少對其他服務的依賴,使服務更加輕量化,從而實現(xiàn)服務快速擴展。第三,微博的服務常常會面臨流量激增的問題,微博直播互動系統(tǒng)同樣面臨這樣的問題,甚至激增的特性更加明顯。在流量激增時,僅靠人工方式無法快速擴展服務,所以需要實現(xiàn)服務的自動化彈性伸縮。
微服務架構(gòu)設計主要分為三個步驟:微服務的劃分、微服務間的通信、微服務的部署。對設計的整個過程中的這三個環(huán)節(jié)中,有很多需要注意的細節(jié)。
對于微服務的劃分,需要注意服務劃分的粒度,切莫一開始就過于細粒度。而是根據(jù)服務和需求的的發(fā)展,在恰當?shù)臅r候,對復雜度較高的服務進行拆分,將同一類功能的服務進行歸類劃分。舉例來說,對于直播互動這個系統(tǒng),服務的難點在于長期維護與用戶的長連,并持續(xù)推送消息。一個10w人同時在線的房間,每秒有10個人評論,那推送的消息量將會是100w條/s。因此,推送服務也是最容易出現(xiàn)瓶頸和最需要快速擴容的服務。那么,在微服務劃分時,需盡量地使推送服務輕量化,減少對其他服務的依賴,加快擴容速度。
對于微服務間的通信,需要注意的是服務依賴的問題。例如:一個服務A,它同步依賴的服務B平均耗時1s,這就會導致服務A的平均響應時間至少是1s。
對于微服務的部署,需要注意兩點:一是,快速擴容時,依賴的資源和服務需要一起擴容,其中包括負載均衡、緩存,甚至是DB,否則服務仍會遇到瓶頸。二是,在升級服務時,依賴服務之間的上線問題。
WOT峰會演講內(nèi)容提前知
在本屆峰會,溫情將為大家?guī)碛嘘P微博直播互動微服務架構(gòu)設計的主題演講。
采訪中,他向記者介紹,本次演講將著重介紹在微服務化過程中,如何解決微服務粒度劃分,微服務通信以及微服務部署等方面問題。在架構(gòu)設計中,如何通過利用Docker化技術(shù),解決混合云平臺引入的環(huán)境差異問題,實現(xiàn)服務更加快速地部署和擴展。對于直播波峰波谷明顯,以及微博特色的流量激增等特性,直播互動服務利用混合云的可彈性伸縮特性,搭建出一套自動化的可彈性伸縮服務,既解決了峰值應對問題,又實現(xiàn)了成本***化。
【原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為.com】
本文名稱:新浪微博溫情:基于微服務的微博直播互動架構(gòu)設計經(jīng)驗分享
文章路徑:http://m.fisionsoft.com.cn/article/djschie.html


咨詢
建站咨詢
