The best Elasticsearch Highlevel Rest Client API-----bboss v6.1.5 发布。
bboss elasticsearch 是一套基 于query dsl 语法操作和访问分布式搜索引擎 elasticsearch 的 o/r mapping 高性能java开发库,底层基于 es restful api。
主要功能特色
-
ORM和DSL二者兼顾,类mybatis方式操作ElasticSearch,提供丰富的开发API和开发Demo
-
采用XML文件配置和管理检索dsl脚本,简洁而直观;只需编写好dsl,放入xml配置文件,通过bboss api完成相应的检索查询操作即可;提供丰富的逻辑判断语法,在dsl脚本中可以使用变量、脚本片段、foreach循环、逻辑判断、注释;基于可扩展DSL配置管理机制可以非常方便地实现数据库、redis等方式管理dsl;配置管理的dsl语句支持在线修改、自动热加载,开发和调试非常方便
-
提供Elasticsearch集群节点自动负载均衡和容灾恢复机制,Elasticsearch节点断连恢复后可自动重连,高效可靠
-
提供Elasticsearch集群节点自动发现机制:自动发现Elasticsearch服务端节点增加和下线操作并变更客户端集群可用节点地址清单
-
提供http 连接池管理功能,提供精细化的http连接池参数配置管理
-
支持在应用中访问和操作多个Elasticsearch集群,每个Elasticsearch集群的版本可以不同
-
支持基于X-Pack和searchguard两种安全认证机制
-
支持Elasticsearch-SQL-ORM和Elasticsearch-JDBC
-
提供高效的BulkProcessor处理机制
-
提供快速而高效的数据同步导入ES工具,支持增、删、改数据同步:支持DB到Elasticsearch,Elasticsearch到DB,MongoDB到Elastisearch数据同步,HBase到Elasticsearch数据同步,Kafka到Elasticsearch数据同步,DB到DB之间数据同步,后续将支持更多的数据源
-
提供按时间日期ES历史数据清理工具
-
APM开源产品pinpoint官方Elasticsearch bboss 客户端性能监控插件,插件地址: https://github.com/naver/pinpoint/tree/master/plugins/elasticsearch-bboss
-
与Elasticsearch、Spring boot、jdk兼容性
bboss |
Elasticsearch |
spring boot |
all |
1.x |
1.x,2.x |
all |
2.x |
1.x,2.x |
all |
3.x |
1.x,2.x |
all |
5.x |
1.x,2.x |
all |
6.x |
1.x,2.x |
all |
7.x |
1.x,2.x |
jdk兼容性:jdk 1.7+
v6.1.5 功能改进
-
改进节点发现机制和健康检查机制:为节点发现机制和健康检查机制分配独立的http连接池,与正式的连接池隔离,避免相互影响
-
添加http.backoffAuth属性:
向后兼容的basic安全签名机制,v6.1.3以及之后的版本默认采用http组件内置的basic签名认证机制,但是有些http服务端对安全认证
的实现不是很规范,会导致http basic
security机制不能正常工作,因此通过设置http.backoffAuth兼容老版本安全认证方式
true:向老版本兼容,false(默认值):不向老版本兼容 http.backoffAuth=true
-
添加http.encodedAuthCharset属性,用于指定basic认证编码账号和口令的字符集,默认为:US-ASCII
-
修复bug: v6.1.2版本引入的问题,在Elasticsearch没有启动的情况下,运行es客户端应用,因获取版本信息失败,es数据源健康检查进程不能正常初始化启动,在es启动后,无法将正常恢复elasticsearch连接
-
能扩展:增加停止elasticsearch数据源方法,使用示例:
ElasticSearchHelper.stopElasticsearch("default");
6. 功能扩展:增加自定义httpclient机制,方便自定义httpclient,实现Kerberos认证和与aws认证机制等功能,使用参考文档:集成aws-elasticsearch
7. 优化客户端Elasticsearch集群节点健康检查机制,优化httpclient连接池管理机制
8. 增加根据通配符获取索引信息的方法,使用示例:
ClientInterface clientInterface = ElasticSearchHelper.getRestClientUtil();
List<ESIndice> indices = clientInterface.getIndexes();
List<ESIndice> indicesD = clientInterface.getIndexes("d*");
Elasticsearch bboss使用文档
- https://esdoc.bbossgroups.com/#/quickstart
Elasticsearch bboss版本变更记录
- https://esdoc.bbossgroups.com/#/changelog
|