在项目开发过程中有多种Elasticsearch版本和连接客户端可以选择,那么他们有什么区别,各种类型的客户端对Elasticsearch版本的兼容度如何?

Elasticsearch版本介绍

ES的版本管理机制:主版本.次版本.修正版本

主版本一年一发,主要是重大升级和改进,涉及底层Lucence版本升级、性能改进、重大特性发布

次版本2~3个月发一次,主要是少量特性功能发布(有阻断变化和废弃旧特性)及BUG修复

修正版本2周左右发一次,不添加新功能,只修复BUG

大版本主要功能特性差异,详细参见ES发展史

6.8.0/7.1.0后xpack 开源,基础版不需要授权免费使用,包括: 安全、监控等

多type支持

5.6.X 默认支持多type,可以通过配置只支持一个type

6.X 默认支持单一type,可以通过配置打开支持多type

7.X 只允许单一type,即_doc

比如Elasticsearch-V7.2.1,7是主版本、2是次版本,1是修正版本,每个版本实现的功能、特性和解决的bug可以在官方的release-notes中查看。

客户端分类

常见的客户端有以下几种:

ES从V0.9~V2.2 版本提供的客户端,集成该客户端的应用会以一个node节点的方式加入到ES集群,以集群节点的身份与ES通信。从V2.3版本开始移除,不提供这种类型的客户端,该类型的客户端在后续的ES版本中不可用。

ES从V0.9~V7.X 版本提供的客户端,该客户端使用transport模块(序列化协议)和远程的ES集群通信,相比与node客户端,transport client不加入ES集群,只通过transport模块简单的获取各节点的状态和绑定的transport地址,通过轮询的方式和集群内的节点通信。从V7.0开始官方不建议使用,V8.0开始正式移除。官方推荐使用 Elastic Java High Level Rest Client 来代替。

ES从V5.0~V5.4 版本提供的官方的轻量级的客户端,使用restful API(http协议)和远程ES集群通信,具有轻量、引入依赖少、兼容所有服务端ES版本的特点,只提供了最基本的API

ES从V5.5 版本开始Rest Client 分为了两类,原来的 Elastic Recst Client 改名叫作 Elastic Java Low Level Rest Client,基于HTTP协议通过restful API来和远程ES通信,只提供了最基本最简单的API,但是和之前一样兼容所有的ES版本

ES从V5.5 版本开始Rest Client 分为了两类,基于 Low Level Client 提供了更高层次得封装,提供了更高级得API且和Elastic Transport Cliet 接口及参数保持一致。

开源社区提供得基于http协议的Rest 客户端,目前支持ES版本V1.0~V6.X,基于http协议,官方宣称接口及代码设计比ES官方提供的Rest客户端更简洁、更合理,更好用,具有一定的ES服务端版本兼容性,但是更新速度不是很快,目前ES版本已经出到V7.9,但是JestClient只支持到V6.X

客户端版本兼容性

Elasticsearch Node Client

只支持ES 服务端V0.9~V2.2 ,且客户端的版本需要和ES集群的服务版本完全一致,不具备跨版本的兼容性

Elastic Transport Client

​ 支持ES服务端 V0.9~V7.X ,从V8.0开始移除,不支持该客户端。客户端的主版本号必须和ES集群的主版本号 保持一致,次版本号可以不一致,但是次版本号不一致可能导致一些API不兼容。比如 Elastic Transport Client V5.x版本只能连接V5.X的ES集群,不能连接V6.X或者V7.X的集群

Elastic Rest Client 和 Elastic Java Low Level Rest Client

从 V5.0开始提供,理论上兼容所有服务端ES版本

Elastic Java High Level Rest Client

从V5.5开始提供,和Elastic Transport Client 一样,客户端的主版本号必须和ES集群的主版本号 保持一致,次版本号可以不一致,但是次版本号不一致可能导致一些API不兼容。

JestClient

目前支持ES V1.0~V6.X,根据官方提供的兼容列表:

Jest Version

Elasticsearch Version

>= 6.0.0

6

>= 5.0.0

5

>= 2.0.0

2

0.1.0 - 1.0.0

1

<= 0.0.6

< 1

根据该列表理解 JestClient V6.0.0 应该支持ES V1.0 ~ ESV6.X 所有的版本,具备支持跨版本的特性(待验证)

客户端版提供的功能(需要进一步细化)

Elastic Node Client

没用过

Elastic Rest Client 和 Elastic Java Low Level Rest Client

只提供了最基本的API,对于复杂的ES操作支持不够,复杂操作需要写较多java代码

Elastic Transport Client 和 Elastic Java High Level Rest Client

提供了较高的抽象,具备高级API,代码编写量加少

JestClient

官方说提供了灵活、简单、高级的API封装

查看elasticserc版本_Elasticsearch版本和客户端介绍相关推荐

  1. linux查询redis版本_Docker安装Redis并介绍漂亮的可视化客户端进行操作

    1 简介 Redis是使用ANSI C语言开发的基于Key-Value的高性能NoSQL数据库,在解决高并发.高可用等一系列问题中,它扮演着重要的角色.它的优势主要有: 速度快. 持久化. 原子性. ...

  2. 如何查看云服务器的系统版本,如何查看云服务器系统版本

    如何查看云服务器系统版本 内容精选 换一换 用户无法查询到弹性云服务器私网IP地址信息.本问题请按照以下思路进行排查处理.查看DHCP是否为启用状态检查是否存在dhclient进程检查弹性云服务器日志 ...

  3. linux查看网卡的驱动命令行,Linux下查看网卡驱动和版本信息

    Linux下查看网卡驱动和版本信息 查看网卡生产厂商和信号 查看基本信息:lspci 查看详细信息:lspci -vvv # 3个小写的v 查看网卡信息:lspci | grep Ethernet 查 ...

  4. 怎么看linux Java版本,查看linux的java版本信息

    查看linux的java版本信息 [2021-02-10 01:02:40]  简介: linux系统查看jdk版本的方法是:可以通过[java -version]命令来查看.具体方法是:1.打开终端 ...

  5. GitHub入门:github查看项目的历史版本,并实现版本的回滚(网页版)

    原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重. 前言 通过本篇,你将学会在GitHub官网上,查询自己项目的[历史提交记录],还有[版本的回滚]操作. 代码实现 GitHub 版本管理和 ...

  6. win10查看计算机系统版本,Win10版本怎么看?Win10系统版本查看方法

    虽然Win7已经停止了更新,不过微软最新的Win10还是在不断更新版本,带来了更完善的新功能与更安全的用户体验.由于Win10版本更新比较快,以致于很多朋友的系统版本过老,容易导致出现一些问题,比如驱 ...

  7. SQL——使用sql 查看使用数据库的版本

    使用sql 查看使用数据库的版本 例如PostgreSQL 1.查看客户端版本 psql --version 2.查看服务器端版本 2.1 查看详细信息 select version(); 2.2 查 ...

  8. 计算机管理的显卡驱动,想要查看电脑显卡驱动版本是否过低怎么查 - 驱动管家...

    有些人没有定时更新显卡驱动的习惯,在平常的简单操作问题不大,但是如果需要打开一些比较大的软件或者想要玩游戏的时候问题就出来了.特别是在玩游戏的时候,严重的时候甚至连游戏都打不开了,所以我们在平常的时候 ...

  9. 如何查看Linux的java版本,查看linux的java版本信息

    查看linux的java版本信息 [2021-02-10 01:02:40]  简介: linux系统查看jdk版本的方法是:可以通过[java -version]命令来查看.具体方法是:1.打开终端 ...

  10. 查看已安装tensorflow版本

    查看已安装tensorflow版本 2017年08月07日 20:40:23 imperfect00 阅读数 187297更多 个人分类: tensorflow学习笔记 版权声明:本文为博主原创文章, ...

最新文章

  1. android gridview 加载图片大小,Gridview有两列和自动调整大小的图像
  2. R语言绘制堆叠的环状条形图
  3. 重庆南岸召开总结会,今年将引进30家车联网企业
  4. 外国小哥恶搞:用ESP32单片机伪装成GPU,让朋友电脑中“勒索病毒
  5. 网站发布外链如何防止后期被删除?
  6. ML之LiRLassoR:利用boston房价数据集(PCA处理)采用线性回归和Lasso套索回归算法实现房价预测模型评估
  7. Lucene查询(搜索)语法示例
  8. ubuntu下安装django
  9. Java 算法 找素数
  10. 什么是IP地址、子网掩码、路由和网关?
  11. 关于DataSet与Strongly typed DataSet几点思考(原创)
  12. 蓝桥杯省赛2013年Java组B组
  13. 基于java的高校科研管理系统
  14. win10的记事本怎么保存为html,win10系统电脑记事本保存不了的解决办法
  15. 如何下载安装 Visual Studio2010
  16. 双时隙的工作原理_双向可控硅的工作原理及原理图
  17. linux 桌面什么图标好看,Xenlism WildFire:Linux桌面下的一款漂亮图标主题
  18. 自己来制作iso镜像用于安装OpenBSD
  19. 抖音怎么上热门?这样发视频点赞过万!
  20. 华为ensp模拟企业网(校园网),总分公司(总分校区),多区域互联,代码有详细注释

热门文章

  1. 无线遥控433MHz编码发射
  2. 《Sre google运维解密》笔记
  3. 对音频压缩概念的一些误解--记一次与音视频压缩专家的对话
  4. 嵌入式Linux系统工程师系列之ARM920T的MMU与Cache
  5. matlab的数字图像处理,基于MATLAB的数字图像处理分析及应用.pdf
  6. android蓝牙历史发送记录,蓝牙发送历史记录
  7. 数字电视DVB-T/T2/C/S/S2,ATSC,ISDB-T参数设置
  8. 【matlab算法原理详解】车牌识别算法
  9. python求15 17 23 65 97的因数_Python学习记录15
  10. android文字立体,3d立体字转换器