一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

實(shí)例分析途牛網(wǎng)站的無(wú)線架構(gòu)變遷實(shí)踐之路

大?。?/span>0.6 MB 人氣: 2017-10-12 需要積分:1
途牛從一開(kāi)始的單機(jī)系統(tǒng),發(fā)展到現(xiàn)在已擁有數(shù)百個(gè)分布式部署的系統(tǒng)。本文主要將途牛網(wǎng)站無(wú)線系統(tǒng)在從小到大的過(guò)程中,遇到的問(wèn)題以及解決方法與大家分享,希望為大家?guī)?lái)一定借鑒。文章將從服務(wù)化推進(jìn)、南北京機(jī)房之痛、性能提升實(shí)踐、App客戶端技術(shù)演進(jìn)四個(gè)方面進(jìn)行介紹。
  服務(wù)化推進(jìn)
  途牛的服務(wù)化始于2011年,當(dāng)時(shí)我們主要進(jìn)行了會(huì)員的服務(wù)化,2012年進(jìn)行了搜索2.0的服務(wù)化,2013年是服務(wù)化大舉前進(jìn)的時(shí)刻,主要進(jìn)行了搜索3.0、價(jià)格中心、訂單中心、產(chǎn)品基礎(chǔ)數(shù)據(jù)等系統(tǒng)的服務(wù)化,2014年將TSP(途牛服務(wù)治理平臺(tái))、業(yè)務(wù)公共系統(tǒng)、資源搜索系統(tǒng)等進(jìn)行服務(wù)化,2015年對(duì)產(chǎn)類目、開(kāi)放API進(jìn)行服務(wù)化。
  從上面的過(guò)程可以看出,我們的服務(wù)化不是一蹴而就的,而是經(jīng)歷了一個(gè)漫長(zhǎng)的過(guò)程,每一次拆分都相當(dāng)于為高速行駛的汽車更換輪胎的過(guò)程??梢宰⒁獾剑?012年我們拆分了一個(gè)搜索2.0,之后很快又在2013年推出了搜索3.0。
  這兩個(gè)版本的區(qū)別是:做搜索2.0一開(kāi)始沒(méi)有什么經(jīng)驗(yàn),雖然采用了Solr這樣非常成熟的開(kāi)源搜索引擎來(lái)搭建搜索平臺(tái),但是沒(méi)有明確界定搜索平臺(tái)和業(yè)務(wù)系統(tǒng)之間的關(guān)系,導(dǎo)致搜索平臺(tái)的邏輯非常重,被當(dāng)成一個(gè)數(shù)據(jù)聚合的平臺(tái)來(lái)使用,網(wǎng)站列表頁(yè)數(shù)據(jù)和詳情頁(yè)數(shù)據(jù)都從搜索中出來(lái),導(dǎo)致搜索獲取數(shù)據(jù)源部分的邏輯非常復(fù)雜,搜索開(kāi)發(fā)人員將70%的時(shí)間都放在和業(yè)務(wù)系統(tǒng)對(duì)接邏輯的處理上,索引效率也比較低,從而導(dǎo)致性能不穩(wěn)定,逐漸退役。吸取教訓(xùn)后,我們搭建了搜索3.0的平臺(tái),僅僅提供列表搜索,統(tǒng)一列表字段,將數(shù)據(jù)推送邏輯移到搜索外部,由各個(gè)產(chǎn)品系統(tǒng)來(lái)進(jìn)行數(shù)據(jù)推送,搜索本身專注于性能的提升與穩(wěn)定性,并逐步加入智能排序、人工干預(yù)搜索結(jié)果功能。迄今為止,搜索3.0是我們公司最為穩(wěn)定的系統(tǒng)。
  接下來(lái)是服務(wù)化過(guò)程中,技術(shù)層面做得比較好的兩個(gè)服務(wù):價(jià)格計(jì)算服務(wù)和服務(wù)治理平臺(tái)。
  價(jià)格計(jì)算服務(wù)
  從技術(shù)上,價(jià)格計(jì)算服務(wù)有兩個(gè)難點(diǎn):一個(gè)是團(tuán)期價(jià)格依賴的因素較多,并且依賴路徑較深;另一個(gè)是這些因素價(jià)格變動(dòng)的頻率較高,尤其在旺季。因此從設(shè)計(jì)上,價(jià)格計(jì)算服務(wù)必須要有較大的容量要求,同時(shí)具有實(shí)時(shí)性。
  價(jià)格計(jì)算服務(wù)從13年開(kāi)始構(gòu)建,架構(gòu)上也經(jīng)歷了四個(gè)階段:同步架構(gòu)、異步架構(gòu)、并發(fā)架構(gòu)和分布式架構(gòu),如圖1所示。
  實(shí)例分析途牛網(wǎng)站的無(wú)線架構(gòu)變遷實(shí)踐之路
  圖1 服務(wù)化的推薦 - 價(jià)格計(jì)算服務(wù)
  同步架構(gòu):系統(tǒng)間主要通過(guò)接口進(jìn)行交互,其他系統(tǒng)通過(guò)調(diào)用接口通知價(jià)格中心發(fā)起運(yùn)算,價(jià)格中心通過(guò)接口獲取其他系統(tǒng)價(jià)格依賴的所有資源。整個(gè)計(jì)算流程采用串行模型行,效率低僅能滿足小規(guī)模的計(jì)算需求。
  異步架構(gòu):系統(tǒng)間通過(guò)MQ進(jìn)行交互,價(jià)格中心通過(guò)依賴數(shù)據(jù)庫(kù)獲取其他系統(tǒng)的數(shù)據(jù),加快了數(shù)據(jù)讀取的效率,并將計(jì)算價(jià)格變成兩段:先針對(duì)一個(gè)資源多個(gè)供應(yīng)商的情況,將資源的最低成本價(jià)計(jì)算好,然后再算產(chǎn)品最低價(jià)。這種架構(gòu)比同步架構(gòu)數(shù)據(jù)讀取的效率更高,并能通過(guò)預(yù)先生成數(shù)據(jù),加快計(jì)算的速度,提升3倍整體性能。
  并發(fā)架構(gòu):首先將價(jià)庫(kù)自身的數(shù)據(jù)(資源的成本價(jià),產(chǎn)品團(tuán)期起價(jià))進(jìn)行了分庫(kù)分表,提升了系統(tǒng)的數(shù)據(jù)容量,然后再根據(jù)產(chǎn)品的訪問(wèn)頻度區(qū)分冷熱數(shù)據(jù)的計(jì)算頻率,冷數(shù)據(jù)降低計(jì)算頻率,熱數(shù)據(jù)增加計(jì)算頻率——并通過(guò)在內(nèi)存中建立團(tuán)期、行程、資源這三個(gè)維度的數(shù)據(jù)結(jié)構(gòu),提升計(jì)算過(guò)程中數(shù)據(jù)的讀寫效率。整體上性能比異步架構(gòu)提升了3.5倍,每次每個(gè)團(tuán)期的價(jià)格計(jì)算時(shí)間控制在200ms以下。
  分布式架構(gòu):通過(guò)解析依賴數(shù)據(jù)庫(kù)的Binlog,將依賴數(shù)據(jù)庫(kù)的數(shù)據(jù)轉(zhuǎn)換成適合使用的內(nèi)存數(shù)據(jù)庫(kù)結(jié)構(gòu),進(jìn)一步提升數(shù)據(jù)讀取效率,從而解決計(jì)算過(guò)度依賴數(shù)據(jù)庫(kù)的問(wèn)題,通過(guò)使用Sharding MQ,實(shí)現(xiàn)本地訪問(wèn)、本地計(jì)算;通過(guò)使用Unix域通信的機(jī)制,實(shí)現(xiàn)本地通信,將每個(gè)計(jì)算實(shí)例所依賴的資源和通信盡量限制在本地服務(wù)器上,最大化提升I/O能力,降低I/O損耗。整體性能比并發(fā)架構(gòu)提升2倍,每次每個(gè)團(tuán)期的價(jià)格計(jì)算時(shí)間控制在100ms以下。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

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

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?