亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

QQ億級(jí)日活躍業(yè)務(wù)后臺(tái)核心技術(shù)揭秘

Taste / 751人閱讀

摘要:本篇文章來(lái)自于騰訊和共同舉辦的技術(shù)開(kāi)放日后臺(tái)專場(chǎng)出品人傅鴻城的分享,由壹佰案例整理編輯。對(duì)于騰訊而言,后臺(tái)服務(wù)可用性都是四個(gè)九,四個(gè)九轉(zhuǎn)化為時(shí)間就要求一年內(nèi)的故障時(shí)間不能超過(guò)分鐘。

本篇文章來(lái)自于騰訊SNG和msup共同舉辦的技術(shù)開(kāi)放日后臺(tái)專場(chǎng)出品人傅鴻城的分享,由壹佰案例整理編輯。原文發(fā)布在壹佰案例。

引言

作為本次技術(shù)開(kāi)放日后臺(tái)架構(gòu)專場(chǎng)的出品人我今天給大家?guī)?lái)《構(gòu)造高可靠海量用戶服務(wù)-SNG數(shù)億級(jí)日活躍業(yè)務(wù)后臺(tái)核心技術(shù)揭秘》,一起探討怎么從可用性的維度提升海量服務(wù)的可靠性及海量服務(wù)的故障處理方式,包括:
SNG后臺(tái)架構(gòu)的概覽;
面向海量服務(wù)的設(shè)計(jì)原則。騰訊海量服務(wù)的后臺(tái)設(shè)計(jì)一般通用的解決方案是什么,包括如何提升海量服務(wù)的高可用性,如何從架構(gòu)層、產(chǎn)品層、運(yùn)維層提升服務(wù)的合理性;
后臺(tái)服務(wù)故障解決思路

SNG業(yè)務(wù)情況

SNG是騰訊基于社交的業(yè)務(wù)群,包括QQ、QZone、QQ音樂(lè)、騰訊云、K歌、企鵝MV、全民影帝、天天P圖等眾多業(yè)務(wù)。根據(jù)SNG后臺(tái)架構(gòu)從業(yè)務(wù)邏輯、數(shù)據(jù)層面、運(yùn)維包括整個(gè)可用性方面的星級(jí)評(píng)定:

QQ是騰訊持續(xù)了16年的業(yè)務(wù),它的業(yè)務(wù)非常復(fù)雜,從通訊角度主要是消息存儲(chǔ)和轉(zhuǎn)發(fā),QQ團(tuán)隊(duì)致力于打造一個(gè)永不宕機(jī)的服務(wù)。

QZone一直是中國(guó)社交產(chǎn)品的領(lǐng)航者,是騰訊第一個(gè)博士Ross總在負(fù)責(zé)的業(yè)務(wù),前端需要高性能的接入服務(wù)器,它的移動(dòng)端通過(guò)框架WNS逐漸開(kāi)放到騰訊云上,第三方開(kāi)發(fā)商也可以用到 QZone高性能的基礎(chǔ)框架。

QQ音樂(lè)主要涉及流媒體點(diǎn)播、MV體系、海量正版知識(shí)庫(kù)建設(shè)等,目前已經(jīng)DAU對(duì)外我們已經(jīng)宣布過(guò)億,是國(guó)內(nèi)人氣最旺的領(lǐng)先互聯(lián)網(wǎng)音樂(lè)平臺(tái)。

騰訊云有著騰訊最優(yōu)秀的海量服務(wù)解決能力,給各種2B運(yùn)營(yíng)商提供運(yùn)營(yíng)化平臺(tái),可以節(jié)省創(chuàng)業(yè)公司特別是中小型初創(chuàng)公司大量研發(fā)成本,在做的應(yīng)該有不少是創(chuàng)業(yè)者,歡迎來(lái)用騰訊云產(chǎn)品。

全民K歌,兩年前Ross總從空間過(guò)來(lái)兼任數(shù)字音樂(lè)部后開(kāi)始啟動(dòng)團(tuán)隊(duì)做的,在推出不到兩年的時(shí)間目前注冊(cè)用戶已遠(yuǎn)超競(jìng)品,在業(yè)務(wù)邏輯方面主要涉及大量的UGC流媒體上傳存儲(chǔ)和分發(fā)、feeds管理和互動(dòng)、知識(shí)庫(kù)管理等,大家沒(méi)安裝的可以回去盡快安裝一個(gè),里面也有優(yōu)質(zhì)的用戶在唱歌。

如何定義可用性

從大家都熟知的案例入手,12306剛上線的時(shí)候經(jīng)常會(huì)出現(xiàn)掛機(jī)的情況然后顯示一條公告“正在進(jìn)行故障維修”,特別是春節(jié)、節(jié)假日等搶票高峰期,嚴(yán)重影響用戶的使用。

做為互聯(lián)網(wǎng)架構(gòu)師,要怎么提升12306的可用性?故障明顯影響可用性的指標(biāo),那么到底怎樣定義大型互聯(lián)網(wǎng)服務(wù)的可用性?怎樣定義一個(gè)合理的團(tuán)隊(duì)可用性能指標(biāo)?如何提升可用性?

1.怎樣定義大型互聯(lián)網(wǎng)服務(wù)的可用性?
可用性是系統(tǒng)或服務(wù)的健壯性和可靠性。每個(gè)服務(wù)包括QQ、QZone發(fā)生故障我們都會(huì)評(píng)估,是一級(jí)故障還是二級(jí)故障還是三級(jí)故障。

在業(yè)務(wù)場(chǎng)景里,最核心的是用戶價(jià)值的體現(xiàn),我們把可用性更合理定義為:
P=(總用戶價(jià)值-因事故損失的用戶價(jià)值)/總用戶價(jià)值*100%

2.怎樣定義可用性指標(biāo)?
無(wú)論是用QQ、QQ音樂(lè)還是QQ空間,如果中斷1分鐘,用戶自查問(wèn)題;中斷5分鐘以上用戶開(kāi)始有疑問(wèn);中斷30分鐘的時(shí)候論壇等地方開(kāi)始有投訴出現(xiàn),而中斷數(shù)個(gè)小時(shí)的時(shí)候,用戶有可能會(huì)放棄這個(gè)軟件投奔競(jìng)品。

對(duì)于騰訊而言,后臺(tái)服務(wù)可用性都是四個(gè)九,四個(gè)九轉(zhuǎn)化為時(shí)間就要求一年內(nèi)的故障時(shí)間不能超過(guò)52分鐘。有人會(huì)問(wèn)為什么是四個(gè)九而不是五個(gè)九?為什么不越高越好?

直接原因是成本。我們做服務(wù)從剛上線保證兩個(gè)九;之后不斷優(yōu)化、架構(gòu)調(diào)整,比如服務(wù)器做容災(zāi)部署、做雙中心,從兩個(gè)九提升到三個(gè)九;又投入大量的研發(fā)精力和研發(fā)人員從三個(gè)九提升到四個(gè)九,而要達(dá)到五個(gè)九需要增加幾個(gè)數(shù)量級(jí)的投入。在通往五個(gè)九的過(guò)程中,除了架構(gòu)設(shè)計(jì)的合理性,還依賴于整個(gè)電信運(yùn)營(yíng)商的專線帶寬、機(jī)房設(shè)備,這些都會(huì)換算到系統(tǒng)故障率里,怎么預(yù)防也需要投入很多精力。所以我們目前是維持在四個(gè)九。

而在我們公司內(nèi)部,有時(shí)發(fā)生了專線故障,例如有些業(yè)務(wù)的故障率非常高、有大量投訴,那么這些業(yè)務(wù)后臺(tái)架構(gòu)自身肯定存在問(wèn)題,包括整體系統(tǒng)架構(gòu)、前后臺(tái)的系統(tǒng)架構(gòu)都是有問(wèn)題的。

3.談怎么做之前,先說(shuō)說(shuō)估算
我們?cè)谠u(píng)審一個(gè)架構(gòu)師的時(shí)候很看重他的系統(tǒng)架構(gòu),可能45分鐘的評(píng)審時(shí)間有一半都在討論這個(gè)系統(tǒng)架構(gòu)的合理性是什么、為什么要這么設(shè)計(jì)、有沒(méi)有一些演進(jìn)的歷史和背景。

系統(tǒng)架構(gòu)對(duì)于架構(gòu)師來(lái)說(shuō)是非常重要的,作為一個(gè)架構(gòu)師,要能夠概要且具體地畫出系統(tǒng)架構(gòu)、說(shuō)出系統(tǒng)架構(gòu),對(duì)自己的系統(tǒng)架構(gòu)的了解程度也會(huì)體現(xiàn)出你對(duì)整個(gè)業(yè)務(wù)的把控能力。

架構(gòu)師的基本能力其實(shí)是估算的能力。我之前經(jīng)常會(huì)問(wèn)一些來(lái)參加通道答辯的同事,他們會(huì)講:“我做這個(gè)系統(tǒng)的并發(fā)量是每秒1萬(wàn)筆”,問(wèn)他怎么得出來(lái)的,他說(shuō)是壓力測(cè)試。我們認(rèn)為工程師有能力通過(guò)壓力測(cè)試測(cè)試出來(lái)并了解系統(tǒng)最大的并發(fā)能力,但這不是一個(gè)架構(gòu)師的能力。

一個(gè)架構(gòu)師在系統(tǒng)沒(méi)有上線時(shí)就應(yīng)該可以預(yù)測(cè)服務(wù)的最高并發(fā)量,而不是通過(guò)系統(tǒng)測(cè)試。Google的首席架構(gòu)師也說(shuō)過(guò),其實(shí)一個(gè)好的系統(tǒng)架構(gòu)師不是通過(guò)測(cè)試來(lái)得知系統(tǒng)能力,而是通過(guò)估算。這是架構(gòu)師的基本技能,可能沒(méi)法避免所有的錯(cuò)誤,但是他可以避免大的錯(cuò)誤。

面向海量用戶的服務(wù)設(shè)計(jì):架構(gòu)層

以過(guò)往數(shù)據(jù)舉例,某天有10億訪問(wèn)量,而每天都有86400秒,我估算成10萬(wàn)秒,可以換算得到每秒的平均訪問(wèn)是差不多1萬(wàn),再換算成高峰區(qū)的并發(fā)量,是平均瀏覽量的2-3倍,那么高峰時(shí)并發(fā)量大約是2-3萬(wàn)每秒。

架構(gòu)師要有這種意識(shí),你怎么把業(yè)務(wù)運(yùn)營(yíng)指標(biāo)抽象化成每個(gè)技術(shù)細(xì)節(jié),這也是我前文提到的架構(gòu)師要能夠?qū)芏噙\(yùn)營(yíng)數(shù)據(jù)了如指掌。

1.代碼級(jí)優(yōu)化
做到了如指掌首先要對(duì)每個(gè)顆粒度的數(shù)據(jù)有足夠的了解,能夠從系統(tǒng)架構(gòu)和技術(shù)顯性估算出來(lái)業(yè)務(wù)的數(shù)據(jù),再回歸到本身,這就肯定和代碼相關(guān)。

我們基礎(chǔ)數(shù)據(jù)服務(wù)組長(zhǎng)haifeng剛?cè)肼殯](méi)多久的時(shí)候就用新的技術(shù)組件對(duì)代碼進(jìn)行優(yōu)化,提升服務(wù)的高可用性。他在沒(méi)上線前就可以預(yù)測(cè)到優(yōu)化將帶來(lái)多少在線流量變化和業(yè)務(wù)量增加情況下減少的設(shè)備數(shù),在不變或者提升用戶體驗(yàn)的情況下來(lái)做成本和帶寬的優(yōu)化及技術(shù)的優(yōu)化。

代碼是支撐整個(gè)海量服務(wù)的基礎(chǔ)。我們?cè)谡衅笗r(shí)會(huì)看你是一個(gè)超級(jí)程序員還是普通程序員,這個(gè)從代碼方面就可以看出來(lái)。如果是經(jīng)驗(yàn)非常豐富或者不斷追求進(jìn)步的架構(gòu)師,就會(huì)不斷的問(wèn)自己寫代碼有沒(méi)有瓶頸或者優(yōu)化空間。

騰訊也有程序員只是停留在被安排的任務(wù)完成,沒(méi)有思考如何更好的完成,而有的程序員在完成之后還要花很多時(shí)間不斷推行優(yōu)化,甚至發(fā)現(xiàn)有可能存在的內(nèi)存泄露或者漏洞,前者只是完成安排給自己的任務(wù),而后者在不斷思考,往往有超越預(yù)期的表現(xiàn)。

要成長(zhǎng)為架構(gòu)師,就要不斷思考你所服務(wù)的產(chǎn)品里有多少耗內(nèi)存、有多少有瓶頸或優(yōu)化空間。比如如何加速TCP、TCP2.0有什么昕的特性,這是作為一個(gè)架構(gòu)師要不斷給自己思考和反思的點(diǎn),這是提升整個(gè)海量服務(wù)的基礎(chǔ)。

2.系統(tǒng)設(shè)計(jì)級(jí)優(yōu)化
架構(gòu)師除了要推動(dòng)項(xiàng)目組不斷優(yōu)化代碼,同時(shí)也要關(guān)注系統(tǒng)設(shè)計(jì)的合理性。以用戶場(chǎng)景舉例,進(jìn)入QQ音樂(lè)之后,用戶會(huì)收藏自己的歌單,在外面看來(lái)比較簡(jiǎn)單的系統(tǒng)結(jié)構(gòu),但蘊(yùn)含著很復(fù)雜的技術(shù)邏輯。

這些技術(shù)邏輯是為了保證高可用的情況下,各個(gè)模塊能獨(dú)立化部署,能夠很好的做服務(wù)的升級(jí)、擴(kuò)容。技術(shù)要點(diǎn)是存儲(chǔ),做為架構(gòu)師在提到做一些個(gè)體的收藏時(shí),就要從技術(shù)的角度拆分成可量化和可理解的指標(biāo),包括存儲(chǔ)和大量的小份文件、包括2.8億的用戶怎么存儲(chǔ),這些問(wèn)題肯定要列出來(lái);還要思考怎么可拓展,以后不止是收藏歌曲,還可以收藏專輯、歌單、專題等等;還有可用性,深層次思考后臺(tái)要用什么方式進(jìn)行部署以保證數(shù)據(jù)的可靠性、一致性。這些都是做任務(wù)分解和拆解時(shí)需要有的思考。

深度設(shè)計(jì)要基于優(yōu)先級(jí)分級(jí)控制,比如我們用戶分PC客戶端、web、Android、iOS等,用戶在web收藏一首歌就會(huì)刷新頁(yè)面或者離開(kāi)頁(yè)面,服務(wù)器就需要實(shí)時(shí)寫入,而pc或手機(jī)客戶端可以給一個(gè)數(shù)據(jù)到本地,寫入本地記載,服務(wù)器處理不那么實(shí)時(shí)處理,這對(duì)我們五千萬(wàn)在線的高峰是有幫助的,我們可以允許一定的存儲(chǔ)冗余。

這就是基于優(yōu)先級(jí)的快慢處理處理方案,比如客戶端方面,我們可以慢處理,后臺(tái)只要發(fā)送給服務(wù)器端,服務(wù)器端告訴前端收藏成功,可能還沒(méi)有成功,服務(wù)器端的處理程序會(huì)寫入消息隊(duì)列里面,由另外的進(jìn)程再進(jìn)一步處理,而web發(fā)送過(guò)來(lái)的請(qǐng)求就會(huì)采用實(shí)時(shí)處理的方式。

一談到服務(wù)剛上線,可能有大系統(tǒng)對(duì)服務(wù)做推廣,這時(shí)候映射到代碼層級(jí),你可能每個(gè)代碼優(yōu)化提升1毫秒,這對(duì)于整個(gè)高并發(fā)來(lái)說(shuō)就是非??捎^的一筆數(shù)據(jù)。每個(gè)用戶處理時(shí)間少1毫秒,1000個(gè)用戶服務(wù)處理就可以減少1秒。所以在整個(gè)互聯(lián)網(wǎng)后臺(tái)開(kāi)發(fā)里面,每個(gè)代碼細(xì)節(jié)都非常重要,當(dāng)然還有存儲(chǔ)一致性。

3.柔性服務(wù)思維
從系統(tǒng)層面來(lái)說(shuō),你不只是做系統(tǒng),而是在做服務(wù)。做服務(wù)我們也有很多服務(wù)的思維,比如說(shuō)你怎樣保障系統(tǒng)不會(huì)由于某個(gè)故障馬上讓前端受影響,我們的思維叫邏輯性服務(wù)的思維。

就這幾類的故障來(lái)說(shuō),比如硬件方面、網(wǎng)絡(luò)層面、還有代碼層面都會(huì)有很多故障,如果沒(méi)有這種邏輯性服務(wù),可能會(huì)影響80%以上的用戶,這是我們所不能接受的。

騰訊的每個(gè)后臺(tái)CGI自動(dòng)化測(cè)試標(biāo)準(zhǔn)是1秒,從用戶請(qǐng)求到返回操作的時(shí)間如果大于1秒就不達(dá)標(biāo)。為了使得每個(gè)CGI都盡可能達(dá)標(biāo),我們會(huì)采取很多策略,比如上傳很多類型的CGI,就會(huì)有很多思維要思考:后臺(tái)有沒(méi)有雪崩,思考的方式包括識(shí)別關(guān)鍵路徑和非關(guān)鍵路徑。

在騰訊的很多應(yīng)用,引入了類似于股票EMI的算法,就是請(qǐng)求預(yù)期;當(dāng)股票價(jià)格很低的時(shí)候,你的預(yù)期空間很大,股價(jià)很高的時(shí)候,你的預(yù)期很低。比如CGI訪問(wèn)服務(wù)器,如果訪問(wèn)都在10毫秒以內(nèi),那么timeout超時(shí)時(shí)間可以設(shè)置得很長(zhǎng)。如果返回時(shí)間已經(jīng)到100毫秒、1秒,甚至更長(zhǎng)時(shí)間,這時(shí)候就是timeout超時(shí)要設(shè)置盡可能短,這是防雪崩的措施之一,對(duì)后端能起到有效的保護(hù)。

有些業(yè)務(wù)是不能接受有損的,比如銀行的交易或者支付購(gòu)買;但是有些可以,比如QQ登陸到主頁(yè)的信息遇到服務(wù)器故障或是看會(huì)員級(jí)別時(shí)會(huì)員的服務(wù)器掛掉,這個(gè)時(shí)候可以快速返回,這是可以接受有損服務(wù)的場(chǎng)景。

怎么識(shí)別關(guān)鍵路徑和非關(guān)鍵路徑?騰訊一切以用戶價(jià)值為核心,做關(guān)鍵路徑和識(shí)別的時(shí)候,通常要看這個(gè)點(diǎn)對(duì)用戶是不是最關(guān)鍵的。比如登陸一個(gè)客戶端進(jìn)來(lái),顯示的用戶信息哪些最重要?很多業(yè)務(wù)場(chǎng)景就可以識(shí)別出來(lái)哪些是關(guān)鍵路徑,哪些是非關(guān)鍵路徑。

QQ空間也有很多這樣的案例,比如在出現(xiàn)機(jī)房故障的時(shí)候,可以設(shè)置80%的流量可用、50%的流量可用,也可以設(shè)置對(duì)黃鉆客戶優(yōu)先可用的策略。系統(tǒng)出現(xiàn)故障的時(shí)候,我們也要有應(yīng)急策略。我們也會(huì)有些容災(zāi)的策略,會(huì)分級(jí)別,根據(jù)網(wǎng)絡(luò)故障級(jí)別進(jìn)行容災(zāi)的控制。

4.負(fù)載均衡
騰訊的很多服務(wù)是基于LVS的主網(wǎng)結(jié)構(gòu)開(kāi)展的。騰訊有一個(gè)GSLB,這是我們?nèi)?jí)的負(fù)載均衡系統(tǒng),我們每個(gè)域名都會(huì)經(jīng)過(guò)GSLB和LVS。比如你是上海電信的用戶,在整個(gè)過(guò)程中都會(huì)經(jīng)歷騰訊前期負(fù)載控制器,會(huì)找到然后返回這個(gè)IDC。

這個(gè)工作原理基于騰訊本身是海量服務(wù)的互聯(lián)網(wǎng)公司,我們做了大量的測(cè)試,測(cè)試結(jié)果是它可以達(dá)到最有效的調(diào)度結(jié)果,給出最優(yōu)的調(diào)度結(jié)果,包括IDC的各類故障,它會(huì)提前預(yù)知。部署的模塊最好是獨(dú)立化部署。

面向海量用戶的服務(wù)設(shè)計(jì):運(yùn)維層

如果系統(tǒng)缺少監(jiān)控就不是好的系統(tǒng),在SNG包括騰訊各個(gè)研發(fā)團(tuán)隊(duì)非常重視這塊,你對(duì)這個(gè)系統(tǒng)的每個(gè)環(huán)節(jié)、每個(gè)模塊都要一切盡在掌握,想做到這一點(diǎn)很重要的是你整個(gè)模塊的系統(tǒng)監(jiān)控。

騰訊有大量的網(wǎng)管平臺(tái),每臺(tái)設(shè)備當(dāng)前的CPU狀況、網(wǎng)絡(luò)的出口、上行下行流量,每個(gè)都會(huì)有很詳細(xì)的配置,這也是輔助你做到一致性的服務(wù)。還有安全性,比如游戲幣購(gòu)買、會(huì)員開(kāi)通關(guān)閉等,可能平時(shí)的消息發(fā)送要防止被別人竄入或者消息外泄,要注意很多問(wèn)題,我認(rèn)為系統(tǒng)監(jiān)控是整個(gè)后臺(tái)開(kāi)發(fā)非常基礎(chǔ)的方面。

面向海量用戶的服務(wù)設(shè)計(jì):產(chǎn)品層

產(chǎn)品策略,我現(xiàn)在負(fù)責(zé)我們部門的基礎(chǔ)數(shù)據(jù)中心,有些和搜索、曲庫(kù)產(chǎn)品等相關(guān)的事情,從整個(gè)打造海量服務(wù)來(lái)看良好的產(chǎn)品設(shè)計(jì)環(huán)節(jié)是不可或缺的環(huán)節(jié)。

當(dāng)故障的時(shí)候,我們之前有些故障的提示是很討厭的,例如網(wǎng)絡(luò)繁忙、系統(tǒng)崩潰、IE可能中毒類似的提示是非常不友好的,是需要擯棄的產(chǎn)品設(shè)計(jì)。即便系統(tǒng)真的要掛掉也不要閉上眼睛,給到用戶足夠放心友好的提示,這個(gè)是會(huì)在你整個(gè)技術(shù)故障的時(shí)候?qū)τ脩羰亲畲蟮男睦戆参俊?/p>

后臺(tái)故障解決思路

從后臺(tái)故障解決思路來(lái)說(shuō),當(dāng)你去負(fù)責(zé)后臺(tái)系統(tǒng)的時(shí)候,因?yàn)橄到y(tǒng)主要是在線上運(yùn)營(yíng)的,總會(huì)有各種故障,你怎么發(fā)現(xiàn)這些問(wèn)題呢?

監(jiān)控非常重要,系統(tǒng)化監(jiān)控、自動(dòng)化監(jiān)控,所謂自動(dòng)化監(jiān)控是除用戶外,還有很多測(cè)試機(jī),它自己也會(huì)定時(shí)發(fā)起測(cè)試,模擬用戶的請(qǐng)求,然后判斷返回值成功或失敗,從而判斷服務(wù)是否正常。另外必須重視你身邊每位同事的反饋,包括每個(gè)用戶的反饋

從外圍到核心問(wèn)題的本質(zhì),比如有些用戶不能用,有些用戶能用,要看有沒(méi)有地域集中的大范圍投訴,這些肯定要排除的。有沒(méi)有客戶版本問(wèn)題,有沒(méi)有運(yùn)營(yíng)商電路的問(wèn)題,有沒(méi)有組件問(wèn)題。其實(shí)很多時(shí)候分析問(wèn)題,排除法很重要,最終總能找到核心的關(guān)鍵問(wèn)題。

我覺(jué)得對(duì)于后端領(lǐng)域的常出現(xiàn)的問(wèn)題,有些經(jīng)驗(yàn)非常資深的人一看就知道問(wèn)題,但是當(dāng)你對(duì)問(wèn)題不太明確,可能定位非常煩瑣的情況下,就要羅列所有環(huán)節(jié)然后采用排除法排除原因,沒(méi)有辦法排除的就是問(wèn)題的根本原因。

這里有些經(jīng)驗(yàn)的總結(jié),所有bug只要提出來(lái),總是可以找到原因,可以解決的,這也是程序員的最大價(jià)值。當(dāng)你找不到自己系統(tǒng)問(wèn)題的時(shí)候,就要找其他系統(tǒng)問(wèn)題。定位問(wèn)題的時(shí)候,要經(jīng)常思考自己的系統(tǒng)有沒(méi)有問(wèn)題,然后思考其他系統(tǒng)的問(wèn)題。

構(gòu)建海量服務(wù)是很大、很深的話題。在整個(gè)SNG里面,其實(shí)很多的業(yè)務(wù)都在不斷和海量服務(wù)的請(qǐng)求、每次系統(tǒng)問(wèn)題甚至故障都在打交道,這非常鍛煉人的系統(tǒng)架構(gòu)能力,也從中會(huì)有很多的經(jīng)驗(yàn)和啟發(fā)。

現(xiàn)場(chǎng)問(wèn)答

Q:騰訊技術(shù)選型采用C++的考慮是什么?

A:這個(gè)事比較久遠(yuǎn),最開(kāi)始是Tony(編者注:Tony即張志東,騰訊聯(lián)合創(chuàng)始人,前CTO)等創(chuàng)始人來(lái)奠定后臺(tái)使用C++的基調(diào), C++是很高效的程序語(yǔ)言,我們也非常追求在一個(gè)語(yǔ)言上能夠投入,甚至不排斥多花時(shí)間在這個(gè)語(yǔ)言上面做到很高的性能。

Q:負(fù)載均衡方面,QQ的優(yōu)化是偏向硬件層面還是軟件?或者什么場(chǎng)景用硬件好?

A:騰訊有很多是軟硬結(jié)合,我們騰訊應(yīng)用廣泛的軟件級(jí)負(fù)載均衡,信息訪問(wèn)后端的時(shí)候,后端有100臺(tái)設(shè)備,平常的方法是隨機(jī)訪問(wèn)100臺(tái),如果可以實(shí)現(xiàn)調(diào)度,它會(huì)收集每個(gè)IP返回碼,去決策下一次給你這個(gè)接口是最優(yōu)的IP,這是我們SNG常用的軟件級(jí)的負(fù)載均衡組件L5。

在網(wǎng)平有統(tǒng)一提供負(fù)債均衡的LVS和tgw,在騰訊很多是結(jié)合在一起的,沒(méi)法說(shuō)哪個(gè)更好,我們?cè)趺窗逊?wù)做到最大化、最高的可能性就是不斷思考,可能采用軟硬結(jié)合的方式。

Q:騰訊在支付這塊也是四個(gè)九嗎?有更高的要求嗎?

A:有更高要求。對(duì)于架構(gòu)來(lái)說(shuō),騰訊有專門負(fù)責(zé)支付的支付線,不是我在負(fù)責(zé)。很多情況不是系統(tǒng)本身問(wèn)題,而是外界的環(huán)境問(wèn)題,支付業(yè)務(wù)由于銀行網(wǎng)關(guān)系統(tǒng)問(wèn)題,也會(huì)影響服務(wù)質(zhì)量。

騰訊支付定位可能還是四個(gè)九,這里還涉及和銀行的交互接口,但是由于服務(wù)失敗的一個(gè)點(diǎn)應(yīng)該也是需要確保成功,最終確保每一位用戶的利益,微信財(cái)付通、QQ支付領(lǐng)域會(huì)做很多策略規(guī)避這種問(wèn)題,包括流水怎么保證事務(wù)性,不讓用戶花錢拿不到物品。從我們的數(shù)據(jù)來(lái)看,如果一個(gè)普通的功能,出現(xiàn)了一萬(wàn)個(gè)用戶故障最后可能不超過(guò)10個(gè)用戶反饋,而對(duì)于支付涉及到核心用戶利益的,兩個(gè)用戶出現(xiàn)問(wèn)題至少有一個(gè)用戶會(huì)來(lái)反饋。

關(guān)于支付的業(yè)務(wù)指標(biāo),100%這個(gè)目標(biāo)可能也需要很高成本才可能實(shí)現(xiàn),唯一能做的是,例如用戶Q幣購(gòu)買失敗,最終會(huì)有最后的環(huán)節(jié)是客服處理,騰訊會(huì)確保每個(gè)用戶的問(wèn)題最終都會(huì)得到解決,不只是支付問(wèn)題。

結(jié)語(yǔ)

海量服務(wù)是一門很大的課程,今天由于時(shí)間關(guān)系很多方面沒(méi)法細(xì)致講,后面可以在QQ群一起交流探討。再次歡迎和感謝大家來(lái)到SNG技術(shù)開(kāi)放日,希望大家在后臺(tái)通道接下來(lái)的豐富課程中有更多收獲。(想看到本次開(kāi)放日更多后端架構(gòu)案例嗎?關(guān)注公眾號(hào),近期就會(huì)推送。)

也歡迎大家來(lái)騰訊、來(lái)SNG、來(lái)QQ空間和音樂(lè)應(yīng)聘,QQ音樂(lè)我們現(xiàn)在還在廣招優(yōu)秀的后臺(tái)開(kāi)發(fā)(linux c/c++)、移動(dòng)端開(kāi)發(fā)(iOS/Android)和web開(kāi)發(fā),內(nèi)容編輯、產(chǎn)品策劃和運(yùn)營(yíng)等也都火熱招聘中,如果你是一名優(yōu)秀的互聯(lián)網(wǎng)從業(yè)者,不妨來(lái)騰訊SNG一起投入億級(jí)用戶的服務(wù)的實(shí)踐當(dāng)中,簡(jiǎn)歷可以發(fā)送到:SNGZP@tencent.com

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/61776.html

相關(guān)文章

  • SegmentFault 技術(shù)周刊 Vol.39 - 什么!服務(wù)器炸了?

    摘要:有一次別人的云服務(wù)器被攻擊,提供商竟然重啟了物理機(jī)然后又諸多悲劇出現(xiàn)。造成微博服務(wù)短暫不可用。通過(guò)建立工具來(lái)診斷問(wèn)題,并創(chuàng)建一種復(fù)盤事故的文化來(lái)推動(dòng)并作出改進(jìn),防止未來(lái)發(fā)生故障。 showImg(https://segmentfault.com/img/bV0jif?w=900&h=385); 相信小伙伴們?cè)谏暇W(wǎng)或者玩游戲的時(shí)候一定都遇到過(guò)無(wú)法訪問(wèn)的情況。服務(wù)器炸了的原因有各種各樣,下...

    1treeS 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<