www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 架構(gòu)師社區(qū)
[導(dǎo)讀]百度搜索中臺(tái)系統(tǒng)不但承接了搜索的阿拉丁流量,也致力于構(gòu)建各個(gè)垂直業(yè)務(wù)的搜索能力。


導(dǎo)讀:百度搜索中臺(tái)系統(tǒng)不但承接了搜索的阿拉丁流量,也致力于構(gòu)建各個(gè)垂直業(yè)務(wù)的搜索能力。隨著業(yè)務(wù)的不斷發(fā)展,系統(tǒng)的流量規(guī)模已經(jīng)達(dá)到百億級(jí)別。而在百億流量的背后,是千級(jí)別的微服務(wù)模塊和數(shù)十萬(wàn)的實(shí)例數(shù)量,如何保證這套復(fù)雜系統(tǒng)的高可用、高性能和高可控,全要素多維度的可觀測(cè)性成為搜索中臺(tái)系統(tǒng)能力的關(guān)鍵。

本文首先會(huì)介紹什么是可觀測(cè)性以及云原生時(shí)代為什么更要關(guān)注可觀測(cè)性,然后闡述搜索中臺(tái)是如何以極低的機(jī)器成本打造百億流量的實(shí)時(shí)指標(biāo)監(jiān)控(Metrics)、分布式追蹤(Traces)、日志查詢(xún)(Logs)和拓?fù)浞治觯═opos)。


一、云原生和可觀測(cè)性(Observability)

1)什么是可觀測(cè)性

大家對(duì)監(jiān)控并不陌生,只要有系統(tǒng)存在,就需要有監(jiān)控幫我們?nèi)ジ兄到y(tǒng)發(fā)生的問(wèn)題。而隨著業(yè)界傳統(tǒng)技術(shù)架構(gòu)往云原生架構(gòu)的邁進(jìn),可觀測(cè)性逐漸在越來(lái)越多的場(chǎng)合中被提到。如Distributed Systems Observability、Monitoring in the time of Cloud Native等都是對(duì)分布式系統(tǒng)可觀測(cè)性的一些解讀。在CNCF的云原生定義中,也將可觀測(cè)性當(dāng)成云原生架構(gòu)很重要的一個(gè)特性CNCF CloudNative Definition 1.0

可觀測(cè)性是監(jiān)控的一個(gè)超集。監(jiān)控關(guān)注的是一些具體指標(biāo)的變化與報(bào)警,而可觀測(cè)性不僅需要提供對(duì)分布式系統(tǒng)所有鏈路運(yùn)行狀況的高級(jí)概覽,還需要在系統(tǒng)發(fā)生問(wèn)題時(shí)提供系統(tǒng)鏈路細(xì)化的分析,讓開(kāi)發(fā)和運(yùn)維同學(xué)“理解”系統(tǒng)發(fā)生的一切行為。

目前,業(yè)界廣泛推行可觀測(cè)性的基本要素包括:

  • 指標(biāo)監(jiān)控(Metrics)

  • 分布式追蹤(Traces)

  • 日志查詢(xún)(Logs)

經(jīng)過(guò)一些實(shí)踐之后,我們還拓展了一個(gè)要素:拓?fù)浞治觯═opos)?!阜植际阶粉櫋故菑奈⒂^角度去看一個(gè)請(qǐng)求的完整鏈路,而「拓?fù)浞治觥故菑暮暧^角度去分析問(wèn)題。比如某個(gè)服務(wù) Qps 比平時(shí)擴(kuò)大了數(shù)倍,我們需要定位異常流量的源頭,就依賴(lài)拓?fù)浞治龉ぞ摺?/span>

2)云原生架構(gòu)下可觀測(cè)性的必要性

百億級(jí)流量的百度搜索中臺(tái),是怎么做監(jiān)控的?

在云原生時(shí)代,傳統(tǒng)的服務(wù)架構(gòu)和研發(fā)運(yùn)維模式正在進(jìn)行著范式轉(zhuǎn)變。微服務(wù)、容器化、FAAS(serverless)等技術(shù)從根本上改變了應(yīng)用的研發(fā)模式和運(yùn)維方式。但是,云原生架構(gòu)在帶來(lái)業(yè)務(wù)迭代效率指數(shù)級(jí)提升的同時(shí),也產(chǎn)生了一些新的挑戰(zhàn)。從單體應(yīng)用往微服務(wù)進(jìn)行的轉(zhuǎn)變導(dǎo)致原本聚焦的系統(tǒng)變得分散,服務(wù)與服務(wù)之間連接的復(fù)雜度迅速提高,我們對(duì)系統(tǒng)整體的掌控力也在逐漸變?nèi)?。在這種情況下,如何去快速定位異常,做到系統(tǒng)的清晰可視,就成為了亟需解決的問(wèn)題。

二、我們面臨的挑戰(zhàn)

1)超大系統(tǒng)規(guī)模

隨著微服務(wù)化等技術(shù)的使用和新業(yè)務(wù)的接入,百度搜索中臺(tái)的服務(wù)和實(shí)例規(guī)模不斷增加,服務(wù)間的鏈路關(guān)系也日趨復(fù)雜,在這樣一個(gè)龐大系統(tǒng)中建設(shè)可觀測(cè)性,也面臨著更多的挑戰(zhàn)。

百億級(jí)流量的百度搜索中臺(tái),是怎么做監(jiān)控的?

對(duì)于日志的trace來(lái)說(shuō),目前搜索中臺(tái)天級(jí)別的請(qǐng)求量已經(jīng)達(dá)到了百億級(jí)別,如果使用常規(guī)的技術(shù)方案(如Dapper的思路),將日志放到集中式存儲(chǔ)里,意味著我們要付出上百臺(tái)機(jī)器資源,成本是非常高昂的。部分團(tuán)隊(duì)使用抽樣或針對(duì)錯(cuò)誤請(qǐng)求進(jìn)行記錄的方式,這種方式在搜索中臺(tái)場(chǎng)景存在著明顯問(wèn)題:一. 抽樣無(wú)法保證覆蓋線上case。二. 很難有一種有效的方法識(shí)別錯(cuò)誤請(qǐng)求,此外,用戶(hù)對(duì)一些正常請(qǐng)求仍然有trace需求(如誤召回問(wèn)題)。

同樣地,對(duì)于指標(biāo)的數(shù)據(jù)聚合來(lái)說(shuō),在超大系統(tǒng)規(guī)模下,如何優(yōu)化資源占用和時(shí)效,也是一個(gè)極具挑戰(zhàn)的問(wèn)題。

2)從應(yīng)用到場(chǎng)景的觀測(cè)要求

隨著搜索中臺(tái)業(yè)務(wù)場(chǎng)景的不斷豐富,我們的觀測(cè)視角也在發(fā)生著變化。過(guò)去更多關(guān)注的是應(yīng)用維度的信息,而現(xiàn)在一個(gè)應(yīng)用里可能有幾十種業(yè)務(wù)場(chǎng)景,不同場(chǎng)景流量的規(guī)模是完全不同。如果只關(guān)注應(yīng)用維度的指標(biāo),便可能在一些場(chǎng)景異常時(shí),上層無(wú)法感知。如下圖就是一個(gè)典型的例子:場(chǎng)景三的流量因?yàn)檩^小,無(wú)法從應(yīng)用級(jí)別的指標(biāo)中提現(xiàn),因此在異常發(fā)生時(shí),監(jiān)控沒(méi)有報(bào)警。同時(shí),這種細(xì)分場(chǎng)景的指標(biāo)也可以輔助上層做一定的決策,如不同的場(chǎng)景,其中一個(gè)場(chǎng)景通過(guò)同步加載,而另一場(chǎng)景通過(guò)異步加載,兩者的超時(shí)要求是不一樣的,這時(shí)候就可以通過(guò)這種細(xì)分場(chǎng)景的指標(biāo),指導(dǎo)我們做精細(xì)化的控制。

百億級(jí)流量的百度搜索中臺(tái),是怎么做監(jiān)控的?

但是,從應(yīng)用到場(chǎng)景的細(xì)分,導(dǎo)致系統(tǒng)的指標(biāo)量級(jí)急劇擴(kuò)大,達(dá)到了百萬(wàn)級(jí)。這對(duì)于指標(biāo)的聚合和計(jì)算來(lái)說(shuō),就成為一個(gè)新的挑戰(zhàn)。

3)對(duì)拓?fù)滏溌返暮暧^分析

在云原生架構(gòu)下,應(yīng)用與應(yīng)用之間的連接關(guān)系變得越來(lái)越復(fù)雜。分布式追蹤可以幫助我們定位某個(gè)具體請(qǐng)求的問(wèn)題。而在系統(tǒng)出現(xiàn)一些宏觀問(wèn)題:流量劇增,97分位耗時(shí)增加,拒絕率增加等,就需要拓?fù)浞治龉ぞ邘椭覀冞M(jìn)行定位。同時(shí)它對(duì)上層決策也有比較強(qiáng)的指導(dǎo)意義。如下圖右側(cè)的例子:商品搜索有兩類(lèi)場(chǎng)景,第1類(lèi)場(chǎng)景有運(yùn)營(yíng)活動(dòng),預(yù)計(jì)增加300qps的流量,如果沒(méi)有拓?fù)浞治龉ぞ叩脑?,我們就很難評(píng)估各個(gè)服務(wù)的容量Buffer。

百億級(jí)流量的百度搜索中臺(tái),是怎么做監(jiān)控的?

三、我們做了什么

我們?cè)谌ツ?,?duì)可觀測(cè)性的四個(gè)要素進(jìn)行了探索和實(shí)踐,并發(fā)布了全要素的觀測(cè)平臺(tái),為保障搜索中臺(tái)的可用性提供了有力保障。

1)日志查詢(xún)、分布式追蹤

隨著業(yè)務(wù)規(guī)模的增長(zhǎng),搜索中臺(tái)整體的日志量級(jí)達(dá)到了PB級(jí)的規(guī)模,通過(guò)離線存儲(chǔ)日志數(shù)據(jù),再進(jìn)行索引的方式會(huì)帶來(lái)巨大的資源開(kāi)銷(xiāo)。而我們?cè)谶@里使用了一種突破性的解決方案:在離線結(jié)合,離線存儲(chǔ)了少量的種子信息,在線直接復(fù)用線上的日志(0成本)。

百億級(jí)流量的百度搜索中臺(tái),是怎么做監(jiān)控的?

具體做法是:

  1. 在流量入口層將logid、ip、訪問(wèn)的時(shí)間戳存下來(lái),存到一個(gè)kv存儲(chǔ)里。

  2. 當(dāng)用戶(hù)使用logid檢索的時(shí)候,在kv存儲(chǔ)中查詢(xún)logid對(duì)應(yīng)的ip和時(shí)間戳。

  3. 通過(guò)ip和時(shí)間戳去對(duì)應(yīng)的實(shí)例獲取完整的日志信息。

  4. 通過(guò)規(guī)則解析日志,獲取下游實(shí)例的ip和時(shí)間戳信息。

  5. 重復(fù)3-4的廣度遍歷過(guò)程,得到完整的調(diào)用鏈路拓?fù)洹?/span>

但是這里仍然存在一個(gè)問(wèn)題:Trace時(shí)間較長(zhǎng)。

實(shí)例需要需要對(duì)自己的日志文件進(jìn)行全量 grep,這在日志文件大、請(qǐng)求鏈路長(zhǎng)的時(shí)候,會(huì)導(dǎo)致trace的時(shí)間較長(zhǎng),同時(shí)也會(huì)帶來(lái)穩(wěn)定性的沖擊。這里我們使用了按時(shí)間動(dòng)態(tài)N分搜索的思路,利用請(qǐng)求的時(shí)間信息和時(shí)間有序的日志結(jié)構(gòu),快速進(jìn)行N分查找。

以下圖給大家舉例:圖中日志文件是 20 點(diǎn)的日志文件,當(dāng)前需要查詢(xún) 20 : 15 分的一個(gè)日志請(qǐng)求。因?yàn)?15 分鐘剛好是小時(shí)的 1/4,所以會(huì)先 fseek 這個(gè)文件的 1/4 位置。當(dāng)前 1/4 段的日志信息在 20 : 13,這個(gè)時(shí)候下半段的日志文件就是 47 分鐘的日志數(shù)據(jù),那就會(huì)再往下偏移 2/47,重新進(jìn)行fseek。重復(fù)這個(gè)過(guò)程就可以快速查詢(xún)對(duì)應(yīng)的詳細(xì)日志信息。

百億級(jí)流量的百度搜索中臺(tái),是怎么做監(jiān)控的?

這種檢索方式可以獲得非常快的收斂速度,單實(shí)例的日志檢索耗時(shí)控制在 100ms 以?xún)?nèi),對(duì) io 的影響基本忽略不計(jì)。同時(shí),用戶(hù)整體的檢索時(shí)間也控制在了秒級(jí)別。

2)指標(biāo)監(jiān)控

因?yàn)槲覀兊挠^測(cè)視角從應(yīng)用級(jí)別發(fā)展到了場(chǎng)景級(jí)別,指標(biāo)數(shù)量也從萬(wàn)級(jí)別增加到了百萬(wàn)級(jí)別,所以我們對(duì)監(jiān)控架構(gòu)進(jìn)行了重新設(shè)計(jì)。這張圖就是升級(jí)后的一個(gè)架構(gòu)圖。

它的主要思想是線上實(shí)例嵌一個(gè)依賴(lài)庫(kù),這個(gè)依賴(lài)庫(kù)會(huì)收集所有的指標(biāo)信息,并將它做一定的預(yù)聚合,之后采集器輪詢(xún)式的去獲取線上的實(shí)例的指標(biāo)數(shù)據(jù),然后把聚合后的數(shù)據(jù)寫(xiě)到tsdb里。值得注意的一點(diǎn),這套方案和業(yè)界的一些指標(biāo)方案較大的不同:實(shí)例維度的指標(biāo)會(huì)在采集器里實(shí)時(shí)聚合,轉(zhuǎn)換成場(chǎng)景或服務(wù)維度的指標(biāo),隨后實(shí)例的維度指標(biāo)會(huì)被丟棄,不再存儲(chǔ)到tsdb中。因?yàn)閷?shí)例維度的指標(biāo)參考意義有限,我們是使用聚合后的數(shù)據(jù)等來(lái)分析應(yīng)用的運(yùn)行情況。

百億級(jí)流量的百度搜索中臺(tái),是怎么做監(jiān)控的?

在這套架構(gòu)里,我們對(duì)計(jì)算和存儲(chǔ)進(jìn)行了很多的優(yōu)化,從線上指標(biāo)變化到平臺(tái)展現(xiàn),只需要2s的反饋時(shí)間,資源開(kāi)銷(xiāo)非常輕量。以指標(biāo)的聚合為例:線上實(shí)例只進(jìn)行累加操作,而采集器會(huì)存上一次抓取的快照信息,和當(dāng)前這一次采集做對(duì)比,進(jìn)行線性差值計(jì)算。這種方式對(duì)線上實(shí)例的資源開(kāi)銷(xiāo)是肉眼不可見(jiàn)的。同時(shí)也可以方便的去產(chǎn)出Qps、延遲等信息。

百億級(jí)流量的百度搜索中臺(tái),是怎么做監(jiān)控的?

除了Qps、延遲之外,我們也優(yōu)化了分位耗時(shí)的計(jì)算方式。

分位耗時(shí)的計(jì)算常規(guī)方案是將請(qǐng)求的耗時(shí)做排序,然后取它的分位位置上的耗時(shí)數(shù)值。這種計(jì)算方式在請(qǐng)求量級(jí)較高的時(shí)候,資源占用非常高。因此我們采用了分桶計(jì)算的方式,按請(qǐng)求的耗時(shí)進(jìn)行分桶,當(dāng)請(qǐng)求執(zhí)行結(jié)束時(shí),在對(duì)應(yīng)耗時(shí)的桶里加1;而在計(jì)算分位值時(shí),先確定分位值所在的桶,桶內(nèi)數(shù)據(jù)則認(rèn)為服從線性分布,通過(guò)這樣的思路可以推導(dǎo)如下圖的公式。

百億級(jí)流量的百度搜索中臺(tái),是怎么做監(jiān)控的?

這樣的好處是資源開(kāi)銷(xiāo)低,可實(shí)時(shí)計(jì)算,但是缺點(diǎn)是會(huì)損失一部分精度。這個(gè)精度取決于分桶的粒度,在搜索中臺(tái)使用的桶大小是30ms,一般誤差在15ms以?xún)?nèi),可以滿(mǎn)足性能觀測(cè)的需求。

3)拓?fù)浞治?/span>

百億級(jí)流量的百度搜索中臺(tái),是怎么做監(jiān)控的?

拓?fù)浞治龅膶?shí)現(xiàn)利用了指標(biāo)監(jiān)控的運(yùn)作機(jī)制。

首先,對(duì)流量進(jìn)行染色,并將染色信息通過(guò)RPC傳遞到各個(gè)服務(wù)。通過(guò)這種方式,讓每個(gè)span(注:span的定義來(lái)自Dapper論文)持有場(chǎng)景的標(biāo)識(shí)以及上游span的名稱(chēng)。場(chǎng)景標(biāo)識(shí)可以區(qū)分不同場(chǎng)景的流量,而span名稱(chēng)和上游span名稱(chēng)可以建立父子的連接關(guān)系。這些span復(fù)用了上述指標(biāo)計(jì)算的機(jī)制,通過(guò)將span的信息存入指標(biāo)中,產(chǎn)出對(duì)應(yīng)的性能數(shù)據(jù)。當(dāng)用戶(hù)提供一個(gè)場(chǎng)景標(biāo)識(shí)時(shí),平臺(tái)會(huì)把它的全部指標(biāo)提取出來(lái),根據(jù)指標(biāo)內(nèi)的span信息,串聯(lián)成完整的調(diào)用拓?fù)洹?/span>

百億級(jí)流量的百度搜索中臺(tái),是怎么做監(jiān)控的?

四、最后

到這里可觀測(cè)性的四個(gè)基本要素基本講述完了。在這四個(gè)要素之上,我們孵化了很多的應(yīng)用產(chǎn)品,如歷史快照、智能報(bào)警、拒絕分析等。通過(guò)這些產(chǎn)品,可以更好的幫助我們快速去發(fā)現(xiàn)和分析問(wèn)題。

當(dāng)然,可觀測(cè)性的工作并不止步于此。我們也在依托這套觀測(cè)系統(tǒng),打造一些自適應(yīng)、自調(diào)整的柔性機(jī)制,在異常出現(xiàn)時(shí),能夠自動(dòng)容忍和恢復(fù),最大化的保持系統(tǒng)的生命力。

 

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉