分佈式搜索引擎的面試連環炮
- 倒排索引是什麼
- lucene 和 es 的前世今生
- es 的分佈式架構原理能說一下麼(es 是如何實現分佈式的啊)?
- es 寫入數據的工作原理是什麼啊?es 查詢數據的工作原理是什麼啊?底層的 lucene 介紹一下唄?倒排索引瞭解嗎?
- es 在數據量很大的情況下(數十億級別)如何提高查詢效率啊?
- es 生產集羣的部署架構是什麼?每個索引的數據量大概有多少?每個索引大概有多少個分片?
面試題
ES生產集羣的部署架構是什麼?每個索引的數據量大概是多少?麼給索引大概有多少分片?
這個問題,包括後面的redis什麼的,談到es、redis、mysql分庫分表等等技術,面試必問!就是你生產環境咋部署的?說白了,這個問題沒啥技術含量,就是看你有沒有在真正的生產環境裏幹過這事兒!
有些同學可能是沒在生產環境中幹過的,沒實際去拿線上機器部署過es集羣,也沒實際玩兒過,也沒往es集羣裏面導入過幾千萬甚至是幾億的數據量,可能你就不太清楚這裏面的一些生產項目中的細節
如果你是自己就玩兒過demo,沒碰過真實的es集羣,那你可能此時會懵,但是別懵。。。你一定要雲淡風輕的回答出來這個問題,表示你確實幹過這事兒
面試題剖析
其實這個問題沒啥,如果你確實幹過es,那你肯定了解你們生產es集羣的實際情況,部署了幾臺機器?有多少個索引?每個索引有多大數據量?每個索引給了多少個分片?你肯定知道!
但是如果你確實沒幹過,也別虛,我給你說一個基本的版本,你到時候就簡單說一下就好了
(1)es生產集羣我們部署了5臺機器,每臺機器是6核64G的,集羣總內存是320G
(2)我們es集羣的日增量數據大概是2000萬條,每天日增量數據大概是500MB,每月增量數據大概是6億,15G。目前系統已經運行了幾個月,現在es集羣裏數據總量大概是100G左右。
(3)目前線上有5個索引(這個結合你們自己業務來,看看自己有哪些數據可以放es的),每個索引的數據量大概是20G,所以這個數據量之內,我們每個索引分配的是8個shard,比默認的5個shard多了3個shard。