问题
查询出的数据循环单条插入至es,单条发送效率太慢;每条数据一个请求,请求过多导致es内存溢出报错<br>
对于es插入失败未处理,导致数据丢失<br>
发送过程中,程序停止后怎么重启接着进行,而不是从头再来,之前的程序每次抽取速度大约4天的时间,每次重来的代价太大<br>
解决
将单条发送请求改为_bulk批量发送新增数据,对于内存溢出问题,降低请求频率,增大es的内存限制(8G,建议最大设置为物理内存的一半)<br>
es的返回结果有好几种,具体的报错返回信息不同,需要做特殊处理<br>
批量数据全部推送成功的返回结果:
批量推送数据,部分数据推送错误的返回结果:<br>
请求发送失败
每次抽取的数据是根据ID自增的,将每个线程的每次循环的最大ID记录在文件,每次循环完修改文件值<br>