Elasticsearch更数据时报VersionConflictEngineException的解决办法
原因分析
es更新数据时偶尔会报VersionConflictEngineException,经过分析是因为我们的系统存在多个应用同时更新数据的场景。es是乐观锁数据更新,通过版本号控制。而我们的数据更新场景为部分数据更新,es会进行数据反查然后进行更新,反查和更新之间存在其他线程更新数据的情况,因此当前数据版本号和反查得到的版本号不一致,因此抛出异常
解决方案 :
request.setRetryOnConflict(10); //版本号冲突时会重试10次