国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

產(chǎn)品提了個(gè)每秒 20W 次的檢索需求,架構(gòu)如何演進(jìn)?

開發(fā) 架構(gòu)
以同城的帖子業(yè)務(wù)場景為例,帖子的標(biāo)題,帖子的內(nèi)容有很強(qiáng)的用戶檢索需求,在業(yè)務(wù)、流量、并發(fā)量逐步遞增的各個(gè)階段,應(yīng)該如何實(shí)現(xiàn)檢索需求呢?

產(chǎn)品提了一個(gè)需求:

我想做一個(gè)內(nèi)容檢索功能,不復(fù)雜,100億數(shù)據(jù),每秒10萬查詢而已,兩個(gè)星期能上線嗎?

大部分工程師未必接觸過“搜索內(nèi)核”,但互聯(lián)網(wǎng)業(yè)務(wù),基本會(huì)涉及“檢索”功能。以同城的帖子業(yè)務(wù)場景為例,帖子的標(biāo)題,帖子的內(nèi)容有很強(qiáng)的用戶檢索需求,在業(yè)務(wù)、流量、并發(fā)量逐步遞增的各個(gè)階段,應(yīng)該如何實(shí)現(xiàn)檢索需求呢?

原始階段-LIKE

創(chuàng)業(yè)階段,常常用這種方法來快速實(shí)現(xiàn)。

數(shù)據(jù)在數(shù)據(jù)庫中可能是這么存儲(chǔ)的:

t_tiezi(tid, title, content)

滿足標(biāo)題、內(nèi)容的檢索需求可以通過LIKE實(shí)現(xiàn):

select tid from t_tiezi where content like ‘%天通苑%’

這種方式確實(shí)能夠快速滿足業(yè)務(wù)需求,存在的問題也顯而易見:

  • 效率低,每次需要全表掃描,計(jì)算量大,并發(fā)高時(shí)cpu容易100%;
  • 不支持分詞;

初級(jí)階段-全文索引

如何快速提高效率,支持分詞,并對(duì)原有系統(tǒng)架構(gòu)影響盡可能小呢,第一時(shí)間想到的是建立全文索引:

alter table t_tiezi add fulltext(title,content)

使用match和against實(shí)現(xiàn)索引字段上的查詢需求。

全文索引能夠快速實(shí)現(xiàn)業(yè)務(wù)上分詞的需求,并且快速提升性能(分詞后倒排,至少不要全表掃描了),但也存在一些問題:

  • 由于全文索引利用的是數(shù)據(jù)庫特性,搜索需求和普通CURD需求耦合在數(shù)據(jù)庫中:檢索需求并發(fā)大時(shí),可能影響CURD的請(qǐng)求;CURD并發(fā)大時(shí),檢索會(huì)非常的慢;
  • 數(shù)據(jù)量達(dá)到百萬級(jí)別,性能還是會(huì)顯著降低,查詢返回時(shí)間很長,業(yè)務(wù)難以接受;
  • 比較難水平擴(kuò)展;

中級(jí)階段-開源外置索引

為了解決全文索引的局限性,當(dāng)數(shù)據(jù)量增加到大幾百萬,千萬級(jí)別時(shí),就要考慮外置索引了。外置索引的核心思路是:索引數(shù)據(jù)與原始數(shù)據(jù)分離,前者滿足搜索需求,后者滿足CURD需求,通過一定的機(jī)制(雙寫,通知,定期重建)來保證數(shù)據(jù)的一致性。

原始數(shù)據(jù)可以繼續(xù)使用Mysql來存儲(chǔ),外置索引如何實(shí)施?

Solr,Lucene,ES都是常見的開源方案。其中,ES(ElasticSearch)是目前最為流行的。

Lucene雖好,潛在的不足是:

  • Lucene只是一個(gè)庫,需要自己做服務(wù),自己實(shí)現(xiàn)高可用/可擴(kuò)展/負(fù)載均衡等復(fù)雜特性;
  • Lucene只支持Java,如果要支持其他語言,必須得自己做服務(wù);
  • Lucene不友好,這是很致命的,非常復(fù)雜,使用者往往需要深入了解搜索的知識(shí)來理解它的工作原理,為了屏蔽其復(fù)雜性,還是得自己做服務(wù);

為了改善Lucene的各項(xiàng)不足,解決方案都是“封裝一個(gè)接口友好的服務(wù),屏蔽底層復(fù)雜性”,于是有了ES:

  • ES是一個(gè)以Lucene為內(nèi)核來實(shí)現(xiàn)搜索功能,提供RESTful接口的服務(wù);
  • ES能夠支持很大數(shù)據(jù)量的信息存儲(chǔ),支持很高并發(fā)的搜索請(qǐng)求;
  • ES支持集群,向使用者屏蔽高可用/可擴(kuò)展/負(fù)載均衡等復(fù)雜特性;

目前,快狗打車使用ES作為核心的搜索服務(wù),實(shí)現(xiàn)業(yè)務(wù)上的各類搜索需求,其中:

  • 數(shù)據(jù)量最大的“接口耗時(shí)數(shù)據(jù)收集”需求,數(shù)據(jù)量大概在10億左右;
  • 并發(fā)量最大的“經(jīng)緯度,地理位置搜索”需求,線上平均并發(fā)量大概在2000左右,壓測(cè)數(shù)據(jù)并發(fā)量在8000左右;

所以,ES完全能滿足10億數(shù)據(jù)量,5k吞吐量的常見搜索業(yè)務(wù)需求。

高級(jí)階段-自研搜索引擎

當(dāng)數(shù)據(jù)量進(jìn)一步增加,達(dá)到10億、100億數(shù)據(jù)量;并發(fā)量也進(jìn)一步增加,達(dá)到每秒10萬吞吐量;業(yè)務(wù)個(gè)性也逐步增加的時(shí)候,就需要自研搜索引擎了,定制化實(shí)現(xiàn)搜索內(nèi)核了。

到了定制化自研搜索引擎的階段,超大數(shù)據(jù)量、超高并發(fā)量為設(shè)計(jì)重點(diǎn),為了達(dá)到“無限容量、無限并發(fā)”的需求,架構(gòu)設(shè)計(jì)需要重點(diǎn)考慮“擴(kuò)展性”,力爭做到:增加機(jī)器就能擴(kuò)容(數(shù)據(jù)量+并發(fā)量)。

同城的自研搜索引擎E-search初步架構(gòu)圖如下:

(1) 上層proxy(粉色)是接入集群,為對(duì)外門戶,接受搜索請(qǐng)求,其無狀態(tài)性能夠保證增加機(jī)器就能擴(kuò)充proxy集群性能;

(2) 中層merger(淺藍(lán)色)是邏輯集群,主要用于實(shí)現(xiàn)搜索合并,以及打分排序,業(yè)務(wù)相關(guān)的rank就在這一層實(shí)現(xiàn),其無狀態(tài)性也能夠保證增加機(jī)器就能擴(kuò)充merger集群性能;

(3) 底層searcher(暗紅色大框)是檢索集群,服務(wù)和索引數(shù)據(jù)部署在同一臺(tái)機(jī)器上,服務(wù)啟動(dòng)時(shí)可以加載索引數(shù)據(jù)到內(nèi)存,請(qǐng)求訪問時(shí)從內(nèi)存中l(wèi)oad數(shù)據(jù),訪問速度很快:

  •  為了滿足數(shù)據(jù)容量的擴(kuò)展性,索引數(shù)據(jù)進(jìn)行了水平切分,增加切分份數(shù),就能夠無限擴(kuò)展性能,如上圖searcher分為了4組
  •  為了滿足一份數(shù)據(jù)的性能擴(kuò)展性,同一份數(shù)據(jù)進(jìn)行了冗余,理論上做到增加機(jī)器就無限擴(kuò)展性能,如上圖每組searcher又冗余了2份

如此設(shè)計(jì),真正做到增加機(jī)器就能承載更多的數(shù)據(jù)量,響應(yīng)更高的并發(fā)量。

簡單小結(jié)一下:

為了滿足搜索業(yè)務(wù)的需求,隨著數(shù)據(jù)量和并發(fā)量的增長,搜索架構(gòu)一般會(huì)經(jīng)歷這么幾個(gè)階段:

  • 原始階段-LIKE;
  • 初級(jí)階段-全文索引;
  • 中級(jí)階段-開源外置索引;
  • 高級(jí)階段-自研搜索引擎;

你們公司,經(jīng)歷到哪個(gè)階段了?

知其然,知其所以然。

思路比結(jié)論更重要。

責(zé)任編輯:趙寧寧 來源: 架構(gòu)師之路
相關(guān)推薦

2025-11-19 09:05:38

2022-07-05 09:56:42

搜索搜索引擎

2022-11-03 10:47:34

分詞檢索架構(gòu)

2021-07-09 05:52:36

架構(gòu)開發(fā)緩存

2025-11-17 09:06:13

架構(gòu)計(jì)數(shù)業(yè)務(wù)數(shù)據(jù)庫

2019-10-17 10:01:12

Java程序員技術(shù)

2019-08-27 08:51:36

計(jì)數(shù)數(shù)據(jù)庫并發(fā)

2023-03-09 07:51:23

性能提升數(shù)據(jù)庫

2020-07-06 09:07:30

爬蟲彈幕發(fā)射器

2025-09-29 09:49:26

2019-09-16 09:34:39

2020-11-09 09:58:49

架構(gòu)雙十一開發(fā)

2013-05-27 09:39:15

移動(dòng)應(yīng)用移動(dòng)開發(fā)開發(fā)秘訣

2018-11-29 09:36:45

架構(gòu)系統(tǒng)拆分結(jié)構(gòu)演變

2024-11-14 08:08:14

2023-12-30 08:27:13

2022-10-26 08:48:55

IT崗位產(chǎn)品經(jīng)理

2024-04-24 07:00:00

Redis架構(gòu)數(shù)據(jù)持久化

2023-04-27 10:50:23

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美大香线蕉线伊人久久国产精品 | av老司机在线观看| www.夜夜爱| 国产精品99一区| 精品美女在线播放| 亚洲国产成人91porn| 久久99精品国产麻豆婷婷洗澡| 日韩在线中文| 精品一区二区三区亚洲| 国产丝袜视频在线播放| 手机亚洲第一页| 亚洲а∨精品天堂在线| 麻豆一区二区三区视频| 波多野结衣av一区二区全免费观看| 精品国产伦一区二区三区观看体验 | 亚洲精品欧美专区| 成人午夜视频在线观看| 丝袜美腿亚洲色图| 中文字幕一区二区三区欧美日韩 | 久久久精品蜜桃| 粉嫩高潮美女一区二区三区 | 亚洲欧美乱综合| 99精品国产一区二区三区不卡| 黑人巨大精品欧美一区| 男人的天堂亚洲在线| 首页亚洲欧美制服丝腿| 国产农村妇女毛片精品久久麻豆| 五月国产精品| 国产免费av一区二区三区| 日本一区中文字幕| 国产精品毛片高清在线完整版 | 国产男女爽爽爽| 欧美理论影院| 欧美猛男做受videos| 国产免费av在线| 六月婷婷激情网| 亚州成人av在线| 香蕉成人啪国产精品视频综合网| 日韩高清不卡一区二区| 日韩一区二区三区免费播放| 国产一区二区三区免费播放| 黄网动漫久久久| 欧美一三区三区四区免费在线看 | 精品无人区一区二区| 北条麻妃国产九九九精品小说| 日本伊人色综合网| 亚洲精品国产高清久久伦理二区| 亚洲天堂av在线播放| 久久亚洲国产精品| 国产日本一区二区三区| 夫妻免费无码v看片| www.男人天堂网| 超碰在线电影| 欧美少妇激情| 国产精品最新自拍| 亚洲激情校园春色| 在线影视一区二区三区| 亚洲色图综合久久| 亚洲wwwav| 成年网站在线播放| 丝袜国产在线| 手机在线电影一区| 成人激情小说网站| 欧美日韩精品高清| 高清一区二区三区日本久| 久久久久久久免费| 免费无码国产v片在线观看| 综合久久2o19| 欧美丝袜一区| 豆国产96在线|亚洲| 欧美人狂配大交3d怪物一区| 国产精品91一区| 欧美黄网站在线观看| 夜级特黄日本大片_在线| 精品国产一区二区三区噜噜噜| 国产盗摄一区二区三区| 色噜噜狠狠一区二区三区果冻| 欧美国产中文字幕| 国产玉足脚交久久欧美| dy888亚洲精品一区二区三区| 欧美a级成人淫片免费看| 国产色婷婷亚洲99精品小说| 亚洲美女激情视频| 日韩在线三级| 欧美午夜电影一区二区三区| 99久久婷婷| 亚洲成在线观看| 国产成人精品视| 污视频网站免费| 国产精品极品国产中出| 久久女同精品一区二区| 日韩一区二区在线视频| 阿v天堂2018| 成人性生活av| 国产黄色成人av| 久久久999精品免费| 免费在线a视频| 欧美中文高清| 欧美国产乱子伦| 91成人在线播放| 在线观看免费国产小视频| 欧美精品入口| 亚洲精品一区二区三区影院| 黄色录像特级片| 亚洲一区av| 亚洲精品日日夜夜| 147欧美人体大胆444| av在线中文| 久久综合激情| 偷拍亚洲欧洲综合| 精品一区二区三区四区| 国产精品私拍pans大尺度在线| 污污的网站在线观看| 久久精品国产亚洲a| 热久久这里只有精品| 亚洲奶水xxxx哺乳期| 一区二区三区免费网站| 亚洲AV无码成人精品一区| 日本中文字幕在线一区| 91精品国产色综合久久| 国产黄视频在线观看| 国产一区二区三区四区五区入口 | 夜夜精品视频| 中文字幕日本欧美| 久久久久久青草| www.亚洲精品| 精品欧美国产| 羞羞答答成人影院www| 欧美激情啊啊啊| 国产福利91精品一区二区| 精品国产免费人成在线观看| 国产免费xxx| 91成人在线精品视频| 欧美成人性福生活免费看| 蜜臀av.com| 香蕉久久99| 欧美变态tickling挠脚心| 99免费视频观看| 亚洲一区二区三区高清不卡| 日韩一区二区三区xxxx| 国产资源在线看| 国产女人水真多18毛片18精品视频| 国产精品中文字幕在线观看| 巨茎人妖videos另类| 色综合久久中文综合久久97 | 91精品久久久久久9s密挑| 久久99国产精品久久99| 国产精品人成电影| 韩国美女久久| 欧美午夜免费电影| 欧美hdfree性xxxx| 成人一区二区三区| 欧美日韩大片一区二区三区| 一呦二呦三呦国产精品| 亚洲视频精品在线| 国产第一页在线视频| 色诱视频网站一区| 国产污污在线观看| 中文字幕在线不卡| 九七伦理97伦理| 男女性色大片免费观看一区二区 | а√在线中文在线新版| 欧美午夜一区二区三区免费大片| 交换国产精品视频一区| 国产视频一区在线播放| 日本福利视频在线观看| 蜜臀va亚洲va欧美va天堂| 欧美一区二区三区电影在线观看 | 高清shemale亚洲人妖| 日韩视频精品| 久久国产精品72免费观看| 性欧美videosex高清少妇| 视频在线观看一区二区三区| 91嫩草视频在线观看| 在线观看不卡| 国产免费一区| 久久一本综合频道| 日韩视频专区| 国产精品资源在线看| 成年人网站免费视频| 久久久亚洲国产美女国产盗摄| 欧美精品一区免费| 国产日韩高清在线| 一级毛片电影| 色婷婷综合久久久中文一区二区| 日本亚洲欧美| 91麻豆精品国产| 国产www视频在线观看| 日韩不卡中文字幕| 69堂免费精品视频在线播放| 亚洲福利在线观看| 欧美sm一区| 久久99青青精品免费观看| 日本免费成人| 欧美中文字幕在线视频| 在线看片日韩| 国产中文字幕乱人伦在线观看| 91亚洲国产成人精品一区二区三| 国产aaaaa毛片| 欧美日韩一区不卡|