Elasticsearch 版本選擇


2018年Q2, Elasticsearch 更新到6.2版本, 6.3版本還未正式發布,如果准備在生產環境使用,比較推薦使用較老的5.6.x版本或2.x版本,一方面比較穩定、另外資料也比較多

如果使用Java技術棧,你很可能會使用Spring Boot全家桶,當前Spring Boot更新到2.x版本, 默認spring-boot-starter-data-elasticsearch 默認的ES版本為5.6.9;如果你仍然使用Spring Boot 1.x版本,那么默認的Elastisearch版本為2.x

客戶端

Java技術棧目前有三種可以選擇 Node Client, Transport Client, Rest API, 需要注明的是,官方已經標明NodeClient 已經過期,Transport Client 將在7.x版本開始不再支持, 最終會在7.x 統一到Rest API。目前Transport Client使用范圍比較廣;Rest API方式兼容性較好;除非在In-memory模式下運行單元測試,否則不推薦NodeClient

單測測試

如果能使用in-memory 這種方式,那么可以很輕松保證可重測性,很可惜的是,Elasticsearch 5.x版本開始,官方已經開始不證支持im-memory這種方式,而且從Spring Boot官方文檔來看,Spring Boot 2.x版本的文檔中已經去掉了In memory這種方式的描述

升級和遷移

2.x版本數據可以直接遷移到 5.x; 5.X版本的數據可以直接遷移到6.x; 但是2.x版本數據無法直接遷移到6.x

總結

ES 2.x版本

優點:

1. Java技術棧, spring-boot-starter-data-elasticsearch 支持in-memory方式啟動,單元測試開箱即用

2. 當前線上運行的主流版本, 比較穩定

缺點:

1. 版本較老,無法體驗新功能,且性能不如5.x

2. 后期升級數據遷移比較麻煩

3. 周邊工具版本比較混亂;Kinbana等工具的對應版本需要自己查

ES 5.x版本

優點

1. 版本相對較新,性能較好官方宣稱索引吞吐量提升在25%到80%之間,新的數據結構用於存儲數值和地理位置字段,性能大幅提升;5.x版本搜索進行了重構,搜索聚合能力大幅提高

2. 周邊工具比較全,版本號比較友好。 ES官方在5.x時代統一了 ELK體系的版本號

3. 升級到6.x也比較方便

缺點:

1.  官方宣布已不支持In-Memory模式和Node Client已失效, 如果需要使用in-memory方式單測,需要自己手動配置ES版本、spring-data-elasticsearch版本、打開http訪問開關等配置,並行使用REST API訪問


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM