數(shù)十年專注企業(yè)數(shù)字化轉(zhuǎn)型、智能化升級、企業(yè)上云解決方案服務(wù)商
工單提交 實(shí)名認(rèn)證 騰佑科技咨詢熱線咨詢熱線: 400-996-8756
百度云服務(wù)中心騰佑科技公司
云服務(wù)器活動(dòng) 服務(wù)器租用 服務(wù)器托管 機(jī)柜租賃 帶寬租賃
  • 最新資訊
  • 熱門資訊
  • 最熱資訊
智能建站

為什么新浪高防服務(wù)器后臺(tái)并發(fā)能力那么差?一個(gè)鹿晗就給整垮了。

發(fā)布時(shí)間:2021-03-09 作者:未知

簡述:知不知不覺中,幸福的十一假期早已告一段落。在暑假的最后一天,大概有四千萬人另外分手后,大家邁入了2017本年度較大甜蜜的暴擊!王源在微博高姿態(tài)公布了自身的新感情,并大氣的@了女友古力娜扎。信息一出,新

知不知不覺中,幸福的十一假期早已告一段落。在暑假的最后一天,大概有四千萬人另外分手后,大家邁入了 2017 本年度較大甜蜜的暴擊!王源在微博高姿態(tài)公布了自身的新感情,并大氣的@了女友古力娜扎。信息一出,新浪微博立刻就炸了。短短的好多個(gè)鐘頭以后,此條新浪微博被分享 736137 次、評價(jià) 1913926 次、關(guān)注點(diǎn)贊 4179888 次,短期內(nèi)內(nèi)分享評價(jià)關(guān)注點(diǎn)贊一下子沖幾百萬,瘋狂增漲的數(shù)據(jù)弄垮了微博的網(wǎng)絡(luò)服務(wù)器……總算,新浪網(wǎng)技術(shù)工程師擔(dān)憂的事兒還是發(fā)生了:中國北京時(shí)間 10 月 8 日中午 12 時(shí) 32 分,微博官方網(wǎng)在線客服賬戶發(fā)布消息稱,現(xiàn)階段手機(jī)客戶端沒法一切正常更新、評價(jià)等好幾個(gè)網(wǎng)頁頁面沒法一切正常表明的難題,技術(shù)工程師已在清查。針對導(dǎo)致這一難題的實(shí)際緣故,微博在公示中稱“大伙兒內(nèi)心也都了解”。最終還是老總弄來啦一千臺(tái)網(wǎng)絡(luò)服務(wù)器才拿下...殊不知全部事情之中,除開成千上萬破碎的少女心爆棚,最可憐背黑鍋還這般愛崗敬業(yè)的小帥哥,非這名新浪微博搜索技術(shù)工程師丁振凱莫屬啦,完婚當(dāng)日,遇王源公開戀情,迫不得已從宴席上離去解決新浪微博出現(xiàn)異常后再次婚宴,心痛小帥哥三秒鐘......那一刻,迫不得已加班加點(diǎn)的程序猿心里是那樣的:連今日的淘寶網(wǎng)程序員全是失戀后:新浪微博技術(shù)工程師眼里的「王源」:好的,大破沖霄樓,新浪網(wǎng)網(wǎng)絡(luò)服務(wù)器到底是如何垮的?新浪網(wǎng)網(wǎng)絡(luò)服務(wù)器是怎么垮的?朋友:蘇莉安(200 贊,程序猿話題討論出色答主)我認(rèn)為不象數(shù)據(jù)庫查詢掛掉,新浪微博這類等級的構(gòu)架壓根并不是簡易的分布式系統(tǒng) server DB 就能扛得住的,不要說鹿晗關(guān)曉彤搞個(gè)大新聞,即使平常經(jīng)營的工作壓力也撐不住。剛剛王高飛說加一千臺(tái)網(wǎng)絡(luò)服務(wù)器臨時(shí)抵住了,數(shù)據(jù)庫查詢是不太可能臨時(shí)性那么延展性伸縮式的,能伸縮式的只不過便是 HTTP Server、各內(nèi)層服務(wù)項(xiàng)目、緩存文件或消息隊(duì)列。大約是新浪微博全自動(dòng)擴(kuò)充的優(yōu)化算法未寫好,或是沒敢全交到優(yōu)化算法來做。例如你發(fā)覺總流量上升了,自動(dòng)下單加幾十臺(tái)網(wǎng)絡(luò)服務(wù)器能接納,忽然加一千臺(tái)如果程序流程出 Bug 得話微贏得白開支要多少錢啊……大多數(shù)是這一數(shù)量級的擴(kuò)充必須運(yùn)維管理手工制作來確定。并且是在假期最后一天的下午暴發(fā)的,并不是瀏覽高峰時(shí)段,網(wǎng)絡(luò)服務(wù)器也提前準(zhǔn)備不夠。大牌明星公開戀情這件事情又無法預(yù)警信息,有誰知道她們什么時(shí)候閑來無事突然詳細(xì)介紹女友啊……朋友(400 贊)依據(jù)現(xiàn)階段現(xiàn)有的信息內(nèi)容猜想是數(shù)據(jù)庫查詢被擊垮了,先給猜測,稍候?qū)憘€(gè)程序流程剖析那時(shí)候的關(guān)注點(diǎn)贊評價(jià)分享數(shù)據(jù)驗(yàn)證猜測。新浪微博那樣的網(wǎng)址,假如被大流量擊垮,不大可能是是非非必不可少字段名沒有容錯(cuò)機(jī)制。以前經(jīng)歷過幾回?zé)狳c(diǎn)事件,相信在暴發(fā)新聞熱點(diǎn)的情況下,新浪微博會(huì)臨時(shí)放棄一點(diǎn)數(shù)據(jù)信息精確性來確保重要服務(wù)項(xiàng)目能用,換句話說,光讀要求難以擊垮新浪微博。依據(jù)安全事故時(shí)的微博點(diǎn)贊數(shù)、分享數(shù)、評價(jià)數(shù)、評價(jià)的回復(fù)數(shù)、評價(jià)的關(guān)注點(diǎn)贊數(shù)、分享的評價(jià)分享關(guān)注點(diǎn)贊等數(shù)的量,新浪微博極可能是因?yàn)榘赴l(fā)那時(shí)候必須載入數(shù)據(jù)庫查詢的要求過多(寫個(gè)人行為最高值很有可能做到了幾十萬乃至高些),及其絕大多數(shù)寫都是會(huì)落入同一條微博上,并且一些寫實(shí)際操作還必須開啟相對的別的寫個(gè)人行為(回應(yīng)評價(jià)必須通告審稿人、關(guān)注點(diǎn)贊必須進(jìn)關(guān)注者 feed 等),數(shù)據(jù)庫查詢工作壓力過大扛不回來,最后給跪了一會(huì)兒。實(shí)際上假如緩存文件搞好,此刻還是能夠達(dá)到關(guān)鍵數(shù)據(jù)信息讀要求的(自然微博緩存做的并不太好,我新浪微博本人頁數(shù)據(jù)信息不正確好長時(shí)間了意見反饋也不起作用)。假如數(shù)據(jù)庫查詢工作壓力過大時(shí),對一部分寫要求多線程化,或是考慮到臨時(shí)拋下一部分要求獲得可靠性,自然那樣也各有利弊,不一定是好的。能夠爬取那時(shí)候王源發(fā)的新浪微博的全部評價(jià)分享回應(yīng)關(guān)注點(diǎn)贊的時(shí)間,看下常見故障前幾秒鐘取得成功的寫個(gè)人行為到底有多少。逃避責(zé)任的沒經(jīng)認(rèn)證的猜想(繪圖水準(zhǔn)比較有限,省去了一部分全過程,可是從左右2個(gè)過多的箭頭符號數(shù),大概表述了許多要求是讀且未壓著數(shù)據(jù)庫查詢,湊合一下吧:朋友:佚名(150 贊)要我放二張來源于新浪微博后臺(tái)數(shù)據(jù)的照片:那樣看很有可能并不是很形象化?沒有比照就沒有傷害??!古力娜扎強(qiáng)烈反響發(fā)展趨勢活生生漲了 1122.9%,社會(huì)社會(huì)!怎么才能提升 系統(tǒng)軟件特性?回望一下,到底是多少的總流量促使曾豪言壯語“新浪微博網(wǎng)絡(luò)服務(wù)器平穩(wěn),能另外適應(yīng)三對出軌的”豪情壯志秒破功,實(shí)際數(shù)據(jù)信息如下圖所顯示:依照新浪微博明星勢力榜每個(gè)總榜記分方法:100分 100 分,由點(diǎn)擊數(shù)、互動(dòng)交流數(shù)、社會(huì)發(fā)展知名度、摯愛值四項(xiàng)構(gòu)成,所占占比各自為30%、30%、20%、20%。由上能夠看得出,王源所發(fā)布微博的每一項(xiàng)都做到了最高值,那麼在這般高總流量的狀況下,做為開發(fā)人員是不是有好的方式來迅速提升 系統(tǒng)軟件特性呢?就王源公布感情造成 新浪微博服務(wù)器宕機(jī)事情探討商業(yè)網(wǎng)站可擴(kuò)展性構(gòu)架。作為一名程序猿,我更很感興趣的是新浪微博怎樣解決瞬時(shí)速度涌進(jìn)的分布式系統(tǒng)大流量。從好久好久之前文章馬伊琍的 “周一見”,到之后 “外遇隊(duì)”、“吸食毒品隊(duì)” 的競相奪分,再到前不久的郭碧婷事情、薛之謙事件,再到今日的王源公布感情......新浪微博看起來每一次都是在掛,一直也沒有發(fā)展,大伙兒每一次碰到熱點(diǎn)新聞事件刷出不來內(nèi)容的情況下都是會(huì)調(diào)侃新浪微博的應(yīng)用平臺(tái)很差勁??墒悄?,新浪微博的后臺(tái)系統(tǒng)毫無疑問一直在重新構(gòu)建升級提升,我認(rèn)為可以保證今日這類水準(zhǔn)早已很非常好了。01從客戶的視角(關(guān)鍵就是我的視角 hhhhh)看來碰到熱點(diǎn)新聞事件的情況下微遠(yuǎn)大幾率在短期內(nèi)內(nèi)(大概 10~15)很有可能會(huì)徹底刷出不來內(nèi)容,過去了一段時(shí)間以后(大概三十分鐘)開展間距更新(間距 10 秒上下),有可能一些情況下會(huì)見到 5xx 的 error,5 開始的 http 狀態(tài)碼意味著網(wǎng)絡(luò)服務(wù)器或是是網(wǎng)關(guān)ip存在的問題。例如網(wǎng)絡(luò)服務(wù)器回絕聯(lián)接、網(wǎng)關(guān)ip請求超時(shí)或是是運(yùn)用編碼存有 Bug 等都是會(huì)造成 5xx 的不正確。在熱點(diǎn)新聞事件產(chǎn)生 1 鐘頭內(nèi),系統(tǒng)軟件應(yīng)當(dāng)能夠恢復(fù)過來的服務(wù)項(xiàng)目。02從網(wǎng)站建設(shè)、運(yùn)維管理工作人員的視角看來運(yùn)維管理:握草?如何瀏覽總流量那么高?是出啥 Bug 了沒有?握草!不容易是又有些人外遇吸食毒品了吧?emmmm.... 我的十一假期可還沒有完畢??!運(yùn)維管理:弟兄們,快別睡了!快加設(shè)備啊!系統(tǒng)軟件要崩了!開發(fā)設(shè)計(jì):別催!再催自盡!leader:檢測在擴(kuò)充以后趕快拉出去測一測!檢測:人到家里躺,鍋從天上來!上邊全是我瞎說的!為何我認(rèn)為新浪微博在分布式系統(tǒng)大流量瀏覽層面的主要表現(xiàn)早已很非常好了呢?舉個(gè)事例吧:淘寶網(wǎng)每一年在雙 11 購物狂歡節(jié)的情況下還要解決分布式系統(tǒng)的情景,可是它是能夠提早做許多提前準(zhǔn)備的。例如提早選購網(wǎng)絡(luò)帶寬資源、提升服務(wù)器空間、開展完善的外地容災(zāi)備份這些,許多全是可預(yù)測分析的。而新浪微博呢?熱點(diǎn)新聞事件隨時(shí)隨地都很有可能產(chǎn)生,因此 這針對新浪微博的運(yùn)維工程師而言是非常大的磨練。自然,如今的運(yùn)維平臺(tái)也是十分的智能化了,能夠?qū)Ω黝愔笜?biāo)值開展實(shí)時(shí)監(jiān)控系統(tǒng),一有出現(xiàn)異常,立刻開展短消息或是電子郵件警報(bào),以后便是每個(gè)職位的技術(shù)工程師人肉出場配制各種資源了。那新浪微博在平常為什么不提升一些服務(wù)器空間呢?服務(wù)器空間、服務(wù)器帶寬資源等既關(guān)鍵,又價(jià)格昂貴。因?yàn)椴⒉⒉皇菚r(shí)時(shí)刻刻都務(wù)必解決分布式系統(tǒng)的情景,因而假如說在平常提升了沉余的服務(wù)器空間造成 很多設(shè)備滿載,也是一種非常大的消耗。我們在考慮到出示能用服務(wù)項(xiàng)目的另外,也務(wù)必考慮一下成本費(fèi)。下邊我也對于可擴(kuò)展性構(gòu)架中常常會(huì)提及的好多個(gè)點(diǎn)來講下。商業(yè)網(wǎng)站高可用性構(gòu)架無論是針對中小型網(wǎng)址還是商業(yè)網(wǎng)站而言,層次全是務(wù)必的:細(xì)粒度的層次一般為網(wǎng)絡(luò)層、業(yè)務(wù)流程層和數(shù)據(jù)信息層。橫著層次以后,很有可能還會(huì)繼續(xù)依據(jù)控制模塊的不一樣對每一層開展豎向的切分。拿新浪微博舉例說明,我認(rèn)為它的評價(jià)控制模塊和關(guān)注點(diǎn)贊控制模塊應(yīng)該是解耦的。越發(fā)繁雜的系統(tǒng)軟件,橫著和豎向的層次切分粒度分布便會(huì)越密。許多情況下你用起來認(rèn)為它便是一個(gè)系統(tǒng)軟件,實(shí)際上后邊可能是由好幾百上百個(gè)單獨(dú)布署的系統(tǒng)軟件對外開放出示服務(wù)項(xiàng)目。群集群集在大中型網(wǎng)站結(jié)構(gòu)中是一個(gè)非常非常關(guān)鍵的定義。因?yàn)榫W(wǎng)絡(luò)服務(wù)器(無論是網(wǎng)站服務(wù)器還是數(shù)據(jù)信息網(wǎng)絡(luò)服務(wù)器)非常容易產(chǎn)生點(diǎn)射難題,一旦一臺(tái)網(wǎng)絡(luò)服務(wù)器掛掉,就務(wù)必開展無效遷移。運(yùn)用集群服務(wù)器一般來說,網(wǎng)站服務(wù)器務(wù)必是無狀態(tài)的。什么是無狀態(tài)網(wǎng)絡(luò)服務(wù)器呢?在詳細(xì)介紹它以前,大家先而言一下情況網(wǎng)絡(luò)服務(wù)器:情況網(wǎng)絡(luò)服務(wù)器一般會(huì)儲(chǔ)存要求有關(guān)的信息內(nèi)容,每一個(gè)要求會(huì)默認(rèn)設(shè)置地應(yīng)用之前的要求信息內(nèi)容。那樣就非常容易造成 對話黏滯難題:假如一臺(tái)情況宕機(jī)了,那麼它儲(chǔ)存的要求信息內(nèi)容 (比如 session) 就遺失了,很有可能會(huì)造成 不能預(yù)料的難題。那麼相對性的,無狀態(tài)網(wǎng)絡(luò)服務(wù)器也不儲(chǔ)存要求信息內(nèi)容,它解決的客戶資料務(wù)必由要求自身帶上,或是是以別的集群服務(wù)器獲得。因而無狀態(tài)網(wǎng)絡(luò)服務(wù)器相對性于情況網(wǎng)絡(luò)服務(wù)器而言更為地健碩,就算是重啟服務(wù)器乃至是宕機(jī)都不容易遺失情況。從而延伸出去的另一個(gè)優(yōu)勢便是便捷擴(kuò)充:只需在提升的網(wǎng)絡(luò)服務(wù)器上布署同樣的運(yùn)用并搞好反向代理就能對外開放出示一切正常的服務(wù)項(xiàng)目。Session 管理方法即然網(wǎng)站服務(wù)器是無狀態(tài)的,那麼客戶的登陸信息內(nèi)容 (session) 怎么管理呢?較為普遍的有下邊四種方法:session 拷貝服務(wù)器ip hash(session 關(guān)聯(lián))用 cookie 紀(jì)錄 sessionsession 網(wǎng)絡(luò)服務(wù)器可是因?yàn)榍叭N都是有非常大的局限,這兒只聊一聊根據(jù)群集的 session 虛擬服務(wù)器方法。大家在這兒是將網(wǎng)絡(luò)服務(wù)器的情況開展分離出來:分成無狀態(tài)的網(wǎng)站服務(wù)器和有情況的 session 網(wǎng)絡(luò)服務(wù)器。自然,這兒說的 session 網(wǎng)絡(luò)服務(wù)器毫無疑問說的是 session 集群服務(wù)器。我們可以依靠分布式緩存或是是關(guān)聯(lián)型數(shù)據(jù)庫查詢來儲(chǔ)存 session。針對新浪微博而言,這兒毫無疑問得用分布式緩存了:由于用關(guān)聯(lián)型數(shù)據(jù)庫查詢得話,連接數(shù)據(jù)庫資源非常容易變成短板,而且 I/O 實(shí)際操作也很費(fèi)時(shí)間。較為普遍的 K-V 內(nèi)存數(shù)據(jù)庫有 Redis。我認(rèn)為新浪微博內(nèi)容中的微博閱讀量、客戶的關(guān)心數(shù)和粉絲數(shù)用 Redis 來存應(yīng)當(dāng)算作較為適合的。web服務(wù)即然提及了群集,毫無疑問得說說web服務(wù)??墒怯X得web服務(wù)應(yīng)當(dāng)能夠分類到可擴(kuò)展性里邊去,因此 這兒也不詳盡講啦,就簡短說說有什么普遍的web服務(wù)的方法及其web服務(wù)優(yōu)化算法。web服務(wù)方法:HTTP 跳轉(zhuǎn)web服務(wù)。DNS 解析域名web服務(wù)。反向代理web服務(wù)。IP web服務(wù)。數(shù)據(jù)鏈路層web服務(wù)。web服務(wù)優(yōu)化算法:輪詢法。任意法。服務(wù)器iphach。權(quán)重計(jì)算輪詢。權(quán)重計(jì)算任意。最少線程數(shù)。發(fā)布點(diǎn)其他忽然想起一個(gè)較為有趣的物品:在新浪微博的構(gòu)架中,應(yīng)當(dāng)選用的是多線程拉實(shí)體模型而不是同步推實(shí)體模型。啥意思呢?大家舉個(gè)事例:王源的粉絲有 3000 多萬元,古力娜扎的粉絲有 1000 多萬元。倘若他們發(fā)過條新浪微博的另外必須往這 4000 萬粉絲的內(nèi)容目錄中 (假定這兒用的是關(guān)聯(lián)型數(shù)據(jù)庫查詢) 消息推送以往,這就是簡單化的同步推實(shí)體模型。那那樣有哪些缺陷呢?最先,那樣會(huì)耗費(fèi)很多的連接數(shù)據(jù)庫資源,更關(guān)鍵的是那樣不太合乎手機(jī)軟件設(shè)計(jì)標(biāo)準(zhǔn):由于針對兩個(gè)人的粉絲而言,各自由有 3000 多萬元和 1000 多萬元的數(shù)據(jù)信息是沉余的。倘若說沙溢、李晨在第一時(shí)間對他們的新浪微博開展了關(guān)注點(diǎn)贊,這時(shí)短板就來了:剛剛往數(shù)據(jù)庫查詢里插進(jìn) 4000 多萬元覺得還能夠接納,可是如今四人的粉絲數(shù)加起來十幾億了,另外往數(shù)據(jù)庫查詢插這么多數(shù)據(jù)信息是否覺得不太適合?沒事兒,大家如今換一種內(nèi)容消息推送方法:大家如今無需同步推了,只是用多線程拉。大家每一次在手機(jī)上刷微博的情況下,假如要想見到升級的內(nèi)容是否都需要頁面刷新獲得?沒有錯(cuò)這就是多線程拉。多線程拉有哪些好處呢呢?很顯著的一個(gè)益處便是能夠?qū)⒕W(wǎng)絡(luò)熱點(diǎn)數(shù)據(jù)信息開展規(guī)范化管理,而且無需開展很多的數(shù)據(jù)信息插進(jìn)沉余實(shí)際操作。此外對服務(wù)器資源的耗費(fèi)也較少。那麼新浪微博內(nèi)容從哪里拉呢?流行的解決方法是把網(wǎng)絡(luò)熱點(diǎn)內(nèi)容放進(jìn)緩存文件中,每一次都去查緩存文件,那樣能夠降低 I/O 實(shí)際操作而且防止產(chǎn)生因資源枯竭的問題導(dǎo)致的請求超時(shí)難題。實(shí)際上可擴(kuò)展性構(gòu)架還包含服務(wù)器升級、服務(wù)降級、備份數(shù)據(jù)、無效遷移這些。有關(guān)網(wǎng)址高可用性、性能卓越、高擴(kuò)展層面覺得也有好多好多物品來寫??墒怯幸恍I(yè)知識沒有一定的社會(huì)經(jīng)驗(yàn)?zāi)?,又不可以非常好的把握。大量深度技術(shù)內(nèi)容由此可見:微博怎樣解決極端化最高值下的延展性擴(kuò)充挑戰(zhàn)?
點(diǎn)擊展開全文

鄭州騰佑科技有限公司(以下簡稱“騰佑科技”)成立于2009年, 總部位于鄭州,是 一家致力于互聯(lián)網(wǎng)服務(wù)業(yè)的高新技術(shù)企業(yè),公司主營業(yè)務(wù)以互聯(lián)網(wǎng)數(shù)據(jù)中心、云計(jì)算、人 工智能、軟件開發(fā)、安全服務(wù)“互聯(lián)網(wǎng)+”行業(yè)解決方案及行業(yè)應(yīng)用等相關(guān)業(yè)務(wù)。

售前咨詢熱線:400-996-8756

備案提交:0371-89913068

售后客服:0371-89913000

熱門活動(dòng)

百度云服務(wù)中心
  • 熱門資訊
  • 隨便看看