介紹一個(gè)億級(jí)流量系統(tǒng)

轉(zhuǎn)載自:Shooter茶杯

介紹一個(gè)億級(jí)流量的機(jī)票查詢業(yè)務(wù)系統(tǒng) , 作為 JVM 實(shí)戰(zhàn)系列的案列

1、系統(tǒng)背景

4億在線用戶的 OTA 旅游平臺(tái)

2、核心業(yè)務(wù)流程

核心業(yè)務(wù)有酒店蜓洪,機(jī)票等,這里拿機(jī)票的查詢舉例:

訂機(jī)票除了商旅的用戶寡喝,正常用戶一般是在中午拯田,或者下班后直到晚上這段時(shí)間才會(huì)去訂機(jī)票。

高峰時(shí)間段是:11 - 14點(diǎn)垃瞧, 17 - 23點(diǎn)蔫劣, 一天24小時(shí),差不多會(huì)有 11 - 12 屬于高峰期个从。

3脉幢、每秒系統(tǒng)的流量壓力

旅游旺季,國(guó)內(nèi)機(jī)票每天大概會(huì)有 100w 單,這么多訂單那流量會(huì)有多少呢嗦锐?

用戶來網(wǎng)站可能有以下情況增加查詢次數(shù):

  1. 多查詢幾個(gè)地方嫌松,看去哪個(gè)地方的機(jī)票稍微更便宜

  2. 多查詢幾個(gè)時(shí)間點(diǎn),看哪天去機(jī)票便宜一點(diǎn)

  3. 有的熱門航線奕污,每天航班不同萎羔,看哪個(gè)航班出發(fā)到達(dá)時(shí)間點(diǎn)合適

  4. 糾結(jié)時(shí),價(jià)格和航班得反復(fù)切換比較

  5. 查到1 - 2個(gè)合適的天數(shù)碳默,航班贾陷,時(shí)間點(diǎn),記在腦海里

再去其他平臺(tái)比對(duì)價(jià)格嘱根,比完價(jià)格后髓废,如果當(dāng)前平臺(tái)便宜《樱可能又會(huì)查 2-3 次 再下單瓦哎。

做系統(tǒng)設(shè)計(jì)的時(shí)候,統(tǒng)計(jì)流量都必須往多了算, 為了應(yīng)付突發(fā)情況蒋譬,流量會(huì)突然一下變大割岛,一般將算出來的值再乘以三倍

假設(shè)有5個(gè)好玩的地方都想去玩犯助, 來自5個(gè)不同地點(diǎn)的查詢

10個(gè)合適的時(shí)間天數(shù)可選 來自10個(gè)不同時(shí)間點(diǎn)的查詢 5 * 10 = 50次

價(jià)格癣漆,出發(fā)時(shí)間性價(jià)比糾結(jié)時(shí),假設(shè)有三趟航班可比較 不同出發(fā)維度比價(jià) 50 + 3 = 53次

和其他平臺(tái)比完價(jià)后又回來確認(rèn)出發(fā)時(shí)間再下單又會(huì)查3次

不同平臺(tái)之間的比價(jià) 53 + 3 = 56次

單個(gè)用戶理想情況下剂买,經(jīng)過 56次查詢惠爽,可能會(huì)買走一單機(jī)票

這里數(shù)值多少不是關(guān)鍵為了方便計(jì)算,56 按 60計(jì)算

峰值假設(shè)節(jié)假日期間流量增大三倍 60 * 3 = 180次 每天100w 訂單瞬哼,這個(gè)系統(tǒng)在極端情況下可能每天會(huì)有

100w * 180 = 1.8億的查詢

只算高峰期請(qǐng)求婚肆,1.8 億可能有 1.5 億都在 12 個(gè)小時(shí)的高峰期內(nèi)

每小時(shí)的流量是:1.8億 / 12 = 1250w

每分的流量是:1250w / 60 = 20.8w

每秒的流量是:20.8w / 60 = 3472

4、每秒內(nèi)存的壓力

機(jī)票業(yè)務(wù)屬于業(yè)務(wù)復(fù)雜

舉例 : 深圳 - 上海 這樣的機(jī)票的搜索查詢會(huì)查出很多趟深圳 - 上海的航班

不僅僅是航線信息坐慰, 還包括 機(jī)型较性、機(jī)場(chǎng)、退改簽结胀,優(yōu)惠政策赞咙,禮盒,保險(xiǎn)產(chǎn)品等

這個(gè)系統(tǒng)生產(chǎn)環(huán)境有 兩個(gè)集群 用來做高可用,總共有 32 臺(tái) 8C 16G 的機(jī)器

將 qps 3472 除以 32 算出平均每臺(tái)機(jī)器的qps:差不多是 110左右

通過第三方工具 lucene 提供的 RamUsageEstimator 這是一個(gè)專門用于計(jì)算堆內(nèi)存占用大小的工具類

調(diào)用 SOA 服務(wù)去查詢 深圳 - 上海 的返回報(bào)文 反序列化后在 JVM 占用 8.1MB

注意 這 8 mb 雖然是一個(gè)對(duì)象糟港,但它并不是一個(gè)大對(duì)象

它內(nèi)部的屬性跟它是引用關(guān)系攀操,意思就是:這 8 mb 在堆內(nèi)存中大大小小可能會(huì)有很多個(gè)對(duì)象, 它的每個(gè)引用變量背后都是一個(gè)對(duì)象秸抚。(這個(gè)一個(gè)套娃的關(guān)系 懂的伐)

深圳 - 上海屬于熱門航線所以報(bào)文會(huì)比較大速和, 冷門航線比如 海拉爾 - 銀川 這種 可能只有幾條航線 報(bào)文可能只有幾百 kb 但熱門航線被請(qǐng)求的概率又要大一些,綜合來看:我們把每次報(bào)文大小算作 5mb

qps110 * 5 mb = 550 mb

這意味著:新生代每秒鐘將會(huì)有耸别,550mb 的空間會(huì)被占用健芭。

五、其他系統(tǒng)如何分析

注意:這個(gè)系統(tǒng)跟其他系統(tǒng)不太一樣

  1. 因?yàn)檫@個(gè)核心服務(wù)的核心接口就兩個(gè):列表查詢秀姐、指定查詢

    但是其他系統(tǒng) , 比如訂單系統(tǒng)可能會(huì)有很多個(gè)接口 , 除了比較核心的訂單查詢接口 , 還有創(chuàng)單慈迈、下單、查庫存等接口

    一般核心接口邏輯會(huì)要復(fù)雜一點(diǎn) , 對(duì)象占用的大小要更大一點(diǎn) , 我們用最占內(nèi)存的那個(gè)接口來分析

    因?yàn)樽畈畹那闆r就是所有的流量都打到核心接口

  2. 指定查詢其實(shí)相對(duì)于列表查詢來說頻率會(huì)低一些 , 這里僅拿列表查詢的情況當(dāng)做一個(gè)系統(tǒng)所有接口來作為參考

    因?yàn)檫@個(gè)接口的一次平均 5mb 其實(shí)也挺大了, 當(dāng)然這里只是作為一個(gè)參考

分析思路

  1. 根據(jù) 集群的 qps 除以機(jī)器數(shù)量 , 估算出每分鐘每個(gè)接口的 qps

  2. 計(jì)算出各個(gè)接口中所有對(duì)象實(shí)際占用的內(nèi)存

  3. qps 不是很高可以用每分鐘的內(nèi)存大小做參考即可

    并發(fā)量很高 就用每秒占用內(nèi)存的大小來做參考

六省有、總結(jié)

今天先分享這個(gè)億級(jí)流量系統(tǒng)的大概情況 , 部分?jǐn)?shù)據(jù)只是作為參考

其實(shí)這個(gè)系統(tǒng)高峰期流量不止億級(jí) , 機(jī)器也不只是 8C 16G

不過來用做案例分析是 ok

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末痒留,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蠢沿,更是在濱河造成了極大的恐慌伸头,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舷蟀,死亡現(xiàn)場(chǎng)離奇詭異恤磷,居然都是意外死亡面哼,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門扫步,熙熙樓的掌柜王于貴愁眉苦臉地迎上來魔策,“玉大人,你說我怎么就攤上這事河胎〈程唬” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵游岳,是天一觀的道長(zhǎng)政敢。 經(jīng)常有香客問我,道長(zhǎng)胚迫,這世上最難降的妖魔是什么喷户? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮晌区,結(jié)果婚禮上摩骨,老公的妹妹穿的比我還像新娘。我一直安慰自己朗若,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布昌罩。 她就那樣靜靜地躺著哭懈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茎用。 梳的紋絲不亂的頭發(fā)上遣总,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音轨功,去河邊找鬼旭斥。 笑死,一個(gè)胖子當(dāng)著我的面吹牛古涧,可吹牛的內(nèi)容都是我干的垂券。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼羡滑,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼菇爪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起柒昏,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤凳宙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后职祷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氏涩,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡届囚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了是尖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奖亚。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖析砸,靈堂內(nèi)的尸體忽然破棺而出昔字,到底是詐尸還是另有隱情,我是刑警寧澤首繁,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布作郭,位于F島的核電站,受9級(jí)特大地震影響弦疮,放射性物質(zhì)發(fā)生泄漏夹攒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一胁塞、第九天 我趴在偏房一處隱蔽的房頂上張望咏尝。 院中可真熱鬧,春花似錦啸罢、人聲如沸编检。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽允懂。三九已至,卻和暖如春衩匣,著一層夾襖步出監(jiān)牢的瞬間蕾总,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工琅捏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留生百,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓柄延,卻偏偏與公主長(zhǎng)得像蚀浆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拦焚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353