bboss es和直接使用es客户端的优点到底在哪里呢?下面做个简单的阐述:
es官方客户端有两种:restclient和transprortclient,前者是基于restful的,直接操作各种restful api和query dsl,比较简单,没有orm功能;后者是基于java api封装的orm框架,封装比较死板,不太灵活,兼容性差,不能像调用restful那样直接操作query dsl,所以也不能直接针对query dsl,在head插件或者kibana里面调试和调优query dsl,写出了query dsl还要想方设法转换成对应的java api的调用方式。
相比较而然,bboss es融合了es官方提供的两种方式(restful和transprortclient)的功能,涵盖两方面能力,提供了(orm和restful,直接使用query dsl),是一个综合型的es客户端,主要优势如下:
- bboss es底层直接基于es 的http restful协议,因此支持所有的es的restful功能,采用连接池技术管理http连接,高效;
- 支持x-pack安全认证;
- 支持集群负载和容灾以及节点自动发现;
- 提供了丰富的orm api(增删改查、批量增删改,聚合统计等),api简洁易用;
- 基于xml配置文件管理query dsl脚本,在query dsl的基础上,提供了简单强大的动态控制语法结构,支持if/else,if/elseif/else,foreach循环控制结构,语法风格非常类似于mybatis管理sql语句的语法风格,但是更加简洁高效;
- 将query dsl脚本从java代码剥离,提供query dsl热加载功能,实时修改实时生效,开发调试效率高,可以与es head和kibana的deptool配合使用;
- 开发和配置也非常简单,只需要引入bboss es的maven坐标或者gradle坐标,无需依赖es官方的jar包,几乎兼容es的各个版本(向前、向后兼容,前提是编写query dsl脚本要兼容);
- bboss es即提供高阶的orm api,也提供了低阶原生restful以及java transport的支持,可以方便地根据自己的实际需要选用。
- 原生的restful的使用,bboss es直接发http restful请求,可以指定http post,get,delete,put方法,返回json报文,有问题直接抛异常。相关示例在新闻《高性能Elasticsearch ORM开发库bboss es 5.0.3.7.8发布》中都有介绍,而且除了返回string类型的json报文,还可以指定ResponseHandler回调处理接口,自行封装成自己想要的对象结构,例如:
Map<String,Object> state = clientUtil.executeHttp("_cluster/state",ClientInterface.HTTP_GET, new MapResponseHandler());//返回map结构
10.对于响应的异常处理,如果restful返回异常报文,都会以ElasticsearchException抛出到应用端。
show me the code:
//一个完整的批量添加和修改索引文档的案例 SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd"); String date = format.format(new Date()); ClientInterface clientUtil = ElasticSearchHelper.getRestClientUtil(); List<Demo> demos = new ArrayList<>(); Demo demo = new Demo(); demo.setDemoId(2l); demo.setAgentStarttime(new Date()); demo.setApplicationName("blackcatdemo2"); demo.setContentbody("this is content body2"); demos.add(demo); demo = new Demo(); demo.setDemoId(3l); demo.setAgentStarttime(new Date()); demo.setApplicationName("blackcatdemo3"); demo.setContentbody("this is content body3"); demos.add(demo); //批量创建文档 String response = clientUtil.addDateDocuments("demo",//索引表 "demo",//索引类型 demos); System.out.println("addDateDocument-------------------------"); System.out.println(response); //批量更新文档 demo.setContentbody("updated"); response = clientUtil.updateDocuments("demo-"+date,"demo",demos); System.out.println("updateDateDocument-------------------------"); System.out.println(response); //获取索引文档,json格式 response = clientUtil.getDocument("demo-"+date,//索引表 "demo",//索引类型 "2");//文档id System.out.println("getDocument-------------------------"); System.out.println(response); //获取索引文档,返回Demo对象类型 demo = clientUtil.getDocument("demo-"+date,//索引表 "demo",//索引类型 "3",//文档id Demo.class);基于bboss es开发的统计查询效果图:
相关推荐
BBoss Elasticsearch是针对Elasticsearch设计的一款辅助工具,主要用于帮助开发者实现数据库数据到Elasticsearch的批量和定时导入。 BBoss(Business Basic Open Source)是一系列企业级开源组件的集合,旨在简化...
**bboss+es基本操作示例** ...总之,bboss+es基本操作示例是学习和实践Elasticsearch与Java集成的优秀资源,通过这个示例,开发者可以快速掌握bboss框架下的DSL操作,为实际项目开发打下坚实基础。
Bboss is a good elasticsearch Java rest client. It operates and accesses elasticsearch in a way similar to mybatis.BBoss Environmental requirementsJDK requirement: JDK 1.7+Elasticsearch version ...
然后切换到bboss-elasticsearch目录下的cmd窗口,运行gradle build命令: gradle publishToMavenLocal 从源代码指南构建: 如何使用 Elasticsearch BBoss。 首先将BBoss的maven依赖添加到你的pom.xml中: < ...
弹性Tran老板数据交换模块使用文档: : Bboss是一个很好的Elasticsearch Java Rest客户端。 它运行并访问像mybatis这样的elasticsearch来关联数据库。环境要求JDK要求:JDK 1.7+ Elasticsearch版本要求:1.X,2.X,5...
Bboss 是一个很好的 elasticsearch Java rest 客户端。它以类似于 mybatis 的方式操作和访问 elasticsearch。适用于新版本kafka client包 ,使用本demo所带的应用程序运行容器环境,可以快速编写,打包发布可运行的...
- Bboss是一个优秀的Elasticsearch Java高级REST客户端API,它的设计目标是使得操作和访问Elasticsearch如同操作Mybatis访问数据库一样简单。通过Bboss,可以实现高效的数据同步功能。 - Bboss的数据同步功能强大...
bboss-datatran 由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标... 同时也是一个高性能Elasticsearch orm 客户端,100%兼容es各个版本 ,兼容spring boot1.x,2.x,3.x
通用高性能Elasticsearch highlevel java rest client 客户端,兼容elasticsearch 1.x,2.x,5.x,6.x,7.x,8.x,兼容spring boot 1.x,2.x,开箱即用
该项目是基于Java语言的bboss开源框架构建的设计源码,包含3075个文件,涵盖2700个Java...本项目基于bboss框架构建了数据采集ETL工具、流批一体化Stream工具、Elasticsearch客户端工具和WebSession共享框架等应用。
elasticsearch视频教程配套maven工程。Bboss 是一个很好的 elasticsearch Java rest 客户端。它以类似于 mybatis 的方式操作和访问 elasticsearch。
综合以上,这个项目利用Spring Boot的便利性构建了一个能够驱动Docker容器进行数据计算、通过Redis管理任务队列以及借助BBoss和Elasticsearch客户端进行日志记录的系统。这样的架构具有高度的灵活性和可扩展性,便于...