使用ElasticSearch遇到的问题
最近项目中需要把ElasticSearch改为使用连接池获取连接和归还连接
这里使用的是Java的GenericObjectPool对象,改对象继承了BaseGenericObjectPool,需要的参数第一个是工厂类,自己创建一个工厂类实现PooledObjectFactory接口,重写方法.第二个参数GenericObjectPoolConfig,该参数可以设置最大连接数,最小连接数,最大总共连接数等.
在获取连接和归还连接时出现问题
第一次可以获取到连接,程序刷新再次请求便没有连接可以获取到.导致程序出问题
解决方法:
第一:归还连接不成功,导致池中没有连接可以获取
使用try catch finally语句把归还连接的语句放在finally里去
第二种:poolConfig.setMaxTotal(8);把最大总共连接数设置更大,最好比最大连接数大.