ES批量操作超时问题处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES批量操作超时问题处理相关的知识,希望对你有一定的参考价值。
参考技术A 在我们springboot项目中使用的是 elasticsearch-rest-high-level-client这个ES官方推荐的客户端当有需求批量删除过期数据一开始使用的是deleteByQuery方法,在要删除的数据比较少的时候没问题,达到几十万条的时候会报 socket超时异常,但是命令不会中断,仍然会执行完,把我们需要delete的数据删完,就是看不到结果,
这时候我们可以
很明显最后一种最合理,作为一个有追求的程序员看不见程序运行结果怎么呢
这个时候我们可以用deleteByQueryAsync :官方文档提供异步调用方式,用listener监听返回结果
监听类很简单,实现 ActionListener<BulkByScrollResponse>接口 重写两个方法一个接受成功,一个接受失败
成功的结果长这个样子
重点是删除条数 和 执行批次, 批次=影响数据量/设置的批次大小+1
同理 批量select insert update 都有async异步调用的方法。
以上是关于ES批量操作超时问题处理的主要内容,如果未能解决你的问题,请参考以下文章