1.简介
EBatis是一个声明式的ElasticSearch ORM框架。类似MyBatis,只需要定义接口,便可轻松访问ElasticSearch,优雅地帮助开发者隔离业务对ElasticSearch底层接口的调用,无需手动构建繁琐的DSL语句。同时,当升级ElastiSearch版本时,无需关心底层接口的变动,平滑升级。目前,支持ElasticSearch6.5.1与7.5.1版本。
2.依赖
ebatis io.manbang 7.5.1.4.RELEASE
1.5.12.RELEASE
org.projectlombok lomboktrue io.manbang ebatis-spring7.5.1.4.RELEASE com.google.auto.service auto-service-annotations1.0-rc6 true compile com.google.auto.service auto-service1.0-rc6 true compile org.springframework.boot spring-boot-dependencies${spring-boot.version} import pom
es org.springframework.boot spring-boot-maven-plugin${spring-boot.version}
3.连接集群
(1).简介
为了保证ElasticSearch集群的高可用,同时支持对集群的负载均衡,EBatis没有直接使用ElasticSearch提供的RestClient和RestHighLevelClient接口来访问集群,而是抽象出一个Cluster。一个Cluster代表一个ElasticSearch集群,如果系统需要连接多个集群,则通过ClusterRouter和ClusterLoadBalancer来实现多集群的路由和负载均衡。
(2).ClusterRouter
ClusterRouter用于路由出一个可以访问的Cluster,内部是通过负载均衡器ClusterLoadBalancer在同一组集群中选中一个集群。根据不同的负载均衡器,EBatis内建了多个对应的路由器。
| 序号 | 路由器 | 负载均衡器 | 备注 |
|---|---|---|---|
| 1 | RandomClusterRouter | RandomClusterLoadBalancer | 随机负载均衡 |
| 2 | RoundRobinClusterRouter | RoundRoubinClusterLoadBalancer | 轮询负载均衡 |
| 3 | SingleClusterRouter | SingleClusterLoaderBalancer | 单一集群 |
| 4 | WeightedClusterRouter | WeightedClusterLoadBalancer | 权重负载均衡 |



