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.xspringboot结构
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访问

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。