Skip to main content

dawdler-es-core

模块介绍

es插件,通过pool2对elasticsearch-java进行封装实现的一套连接池.

1. pom中引入依赖

<groupId>club.dawdler</groupId>
<artifactId>dawdler-es-core</artifactId>

2. properties文件说明

#es主机列表用,隔开
hosts=192.168.1.111:9200,192.168.1.112:9200,192.168.1.113:9200

#用户名 如果没有设置,设空即可
username=myUsername

#密码 如果没有设置,设空即可
password=myPassword

#开启https连接后需要配置以下参数

#证书路径 证书文件需在项目的classPath中
keystorePath=my.jks或my.p12

#证书密码
keystorePassword=myPassword

#超时设置
#connection pool中获得一个connection的超时时间 默认-1 单位秒
connectionRequestTimeout=-1

#链接建立的超时时间 默认-1 单位秒
connectTimeout=-1

#响应超时时间 默认-1 单位秒
socketTimeout=-1

#连接池设置

#最大连接数
pool.maxTotal=20

#最小空闲数
pool.minIdle=2

#最大空闲数
pool.maxIdle=8

#最大等待时长(单位毫秒)
pool.maxWaitMillis=10000

#获取连接时是否验证连接有效 默认为false
pool.testOnBorrow=false

#创建连接时是否验证连接有效 默认为false
pool.testOnCreate=false

#返还连接时是否验证连接有效 默认为false
pool.testOnReturn=false

配置文件支持多环境、统一配置中心、加密、变量替换,参考多环境配置.

3. EsInjector注解

用于注入EsOperator,EsOperator的方法参考ElasticsearchClient类官方文档.

EsInjector注解中的value传入fileName为配置文件名(不包含.properties后缀).

具体参考:

dawdler-server-plug-es 实现dawdler-server端注入功能.

dawdler-client-plug-es 实现web端注入功能.

4. 在非dawdler架构下的使用方式

//通过调用ElasticSearchClientFactory的getInstance方法获取工厂实例

public static ElasticSearchClientFactory getInstance(String fileName) throws Exception;

//fileName是不包含后缀.properties的配置文件名.

//通过工厂实例调用getElasticSearchClient方法获取ElasticSearchClient对象,再通过ElasticSearchClient对象的getElasticsearchClient方法获取ElasticsearchClient对象对es进行操作,当调用结束时需调用ElasticSearchClient的close方法将对象归还连接池.

//例如:传入fileName为myEs,则需要在项目的classPath中创建配置文件myEs.properties.

注意:ElasticSearchClientFactory在客户端和服务器端中运行无需手动关闭,dawdler会自动进行关闭相关资源.

在非dawdler架构下使用需要调用 ElasticSearchClientFactory.shutdownAll(); 来释放资源.