掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
【稿件】2017年12月01日-02日,由主辦的WOTD全球軟件開(kāi)發(fā)技術(shù)峰會(huì)將在深圳中州萬(wàn)豪酒店隆重舉行。本次峰會(huì)以軟件開(kāi)發(fā)為主題,數(shù)十位專家級(jí)嘉賓將帶來(lái)多場(chǎng)精彩的技術(shù)內(nèi)容分享。屆時(shí),新浪微博研發(fā)中心平臺(tái)高級(jí)系統(tǒng)研發(fā)工程師溫情將在微服務(wù)與容器技術(shù)專場(chǎng)帶來(lái)主題為"基于Docker的微博直播互動(dòng)微服務(wù)架構(gòu)"的精彩演講,屆時(shí)他將與來(lái)賓分享如何利用當(dāng)下的技術(shù)熱門話題‘微服務(wù)’,設(shè)計(jì)出一個(gè)穩(wěn)定的支持百萬(wàn)在線的微博直播互動(dòng)微服務(wù)架構(gòu)。誠(chéng)邀您蒞臨大會(huì),與我們共享技術(shù)帶來(lái)的喜悅。

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

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流