阿里巴巴複雜搜索系統的可靠性優化之路

背景算法

搜索引擎是電商平臺成交鏈路的核心環節,搜索引擎的高可用直接影響成交效率。閒魚搜索引擎做爲閒魚關鍵系統,複雜度和系統體量都很是高,再加上閒魚全部導購場景都依靠搜索賦能,搜索服務的穩定可靠成爲了閒魚大部分業務場景可用能力的衡量標準;如何保障搜索服務的穩定和高可用成爲了極大的挑戰。架構

閒魚搜索做爲閒魚核心系統,有如下幾個突出的特色:性能

  • 數據體量大:對接閒魚數十億的商品,引擎有效商品數億;測試

  • 索引龐大:閒魚非結構化商品須要與算法團隊合做,預測抽取有價值的結構化信息,創建索引;已建立數百的索引字段,整個引擎索引數據量爲T級別;搜索引擎

  • 增量消息多:平常增量消息QPS 數十萬,峯值QPS能夠達到 數百萬;spa

  • 查詢複雜:不少特殊業務場景,查詢條件要求苛刻而複雜;好比召回GROUP分組統計,聚合/打散/去重,關鍵詞複合運算查詢等;插件

  • 實時性性要求高:閒魚中都是二手商品,賣家商品的庫存都是1;商品上下架頻繁,對引擎數據的同步更新實時性要求很是高;blog

  • 智能化擴展:因爲閒魚商品非結構化特性,爲保障召回數據的效果以及相關性;須要引擎具有智能插件擴展的能力,能與算法開發人員協同;索引

鑑於閒魚商品搜索引擎以上主要特色,本文詳細介紹閒魚搜索在系統高可用上作的各類努力,但願能給讀者一些啓發。開發

 

閒魚搜索總體架構

正式引出搜索穩定性保障方案以前,咱們須要對閒魚搜索技術有一個簡單大體的瞭解;

咱們比較過不少外部開源的搜索引擎,都不能完美支持背景中所列的需求點;閒魚使用的是阿里巴巴最新研發的搜索引擎平臺Ha3,Ha3是一款很是高效,智能強大的搜索引擎,它徹底知足閒魚搜索的要求;
Elasticsearch是基於Lucene的準實時搜索引擎,也是比較經常使用的開源搜索引擎,可是其在算法擴展支撐/絕對實時的能力上與Ha3相差甚遠;在同等硬件條件下,基於1200萬數據作單機性能對比測試發現,Ha3比ElasticSearch開源系統的QPS高4倍,查詢延遲低4倍;Elasticsearch在大規模數據量場景下的性能和穩定性與HA3相比尚有很大的差距。

原文連接

相關文章
相關標籤/搜索