1.背景

兩年前有機(jī)會接觸過elasticsearch,但是未做深入學(xué)習(xí),只是工作中用到了。越來越發(fā)現(xiàn)es是個不錯的好東西,所以花了點(diǎn)時間好好學(xué)習(xí)了下。在學(xué)習(xí)過程中也發(fā)現(xiàn)了一些問題,網(wǎng)上大多資料都很零散,大部分都是實(shí)驗(yàn)性的demo,很多問題并沒有講清楚也并沒有系統(tǒng)的講完整一整套方案,所以耐心的摸索和總結(jié)了一些東西分享出來。

畢竟當(dāng)你用生產(chǎn)使用的標(biāo)準(zhǔn)來使用es時會有很多問題,這對你的學(xué)習(xí)提出來了新的標(biāo)準(zhǔn)。

比如,使用elasticsearch servicewrapper進(jìn)行自啟動的時候難道就沒發(fā)現(xiàn)它的配置中有一個小bug導(dǎo)致load不了elasticsearch jar包中的class嗎。

還有es不同版本之間的差異巨大,比如,1.0中的分布式routing在2.0中進(jìn)行了巨大差異的修改。原本routing是跟著mapping一起配置的,到了2.0卻跟著index動態(tài)走了。這個調(diào)整的本質(zhì)目的是好的,讓同一個index的不同type都有機(jī)會選擇shard的片鍵。如果是跟著mapping走的話就只能限定于當(dāng)前index的所有type。

es是個好東西,現(xiàn)在越來越多的分布式系統(tǒng)都需要用到它來解決問題。從ELK這種系統(tǒng)層的工具到電商平臺的核心業(yè)務(wù)交易系統(tǒng)的設(shè)計都需要它來支撐實(shí)時大數(shù)據(jù)搜索分析。比如,商品中心的上千萬的sku需要實(shí)時搜索,再到海量的在線訂單實(shí)時查詢都需要用到搜索。

在一些DevOps的工具中都需要es來提供強(qiáng)大的實(shí)時搜索功能。值得花點(diǎn)時間好好研究學(xué)習(xí)下。

網(wǎng)友評論