您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

当两个进程同时写入时如何解决同一密钥上的ElasticSearch冲突

当两个进程同时写入时如何解决同一密钥上的ElasticSearch冲突

VersionConflictEngineException引发以防止数据丢失。_version更改文档时,elasticsearch中的每个文档都有一个递增的数字。

当您从ES查询文档时,响应中还会包含该文档的版本。当您更新相同的文档并提供版本时,索引中应该已经存在具有相同版本的文档。

如果当前版本大于更新请求中的版本,那么我们现在将获得冲突,HTTP错误代码为409, VersionConflictEngineException

在当前情况下,

版本冲突,当前2,提供了1

ES中的当前版本为2,而您的请求中的当前版本为1,这意味着某个其他线程已经修改了该文档,而您的更改正在尝试覆盖该文档。

如果是VersionConflictEngineException,则应重新获取文档并尝试使用最新的更新版本进行更新。

是否使用版本控制 /乐观并发控制,取决于应用程序。如果您可以忍受数据丢失,则可以避免在更新请求中传递版本。

其他 2022/1/1 18:16:25 有395人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶