Elasticsearch 顶尖高手(19)—基于external version进行乐观锁并发控制

external version

es提供了一个feature,就是说,可以不用它提供的内部_version版本号来进行并发控制,可以基于你自己维护的一个版本号来进行并发控制,比如,你的数据在mysql中也有一份, 然后你在应用系统中本身就维护了一个版本号。这时,在进行乐观锁并发控制的时候,可能并不是想要用es内部的_version来进行控制,而是用你自己维护的那个version来进行控制


命令的改变

?version = 1

?version = 1 & version_type = external

区别在于,_version  只有当你提供的 version与 es 中的   _version 一模一样的时候,才可以进行修改,只要不一样,就报错;当version_type = external 的时候,只有当你提供的  version  比  es 中的  _version 大的时候,才能完成修改


es中数据 _version=1    当   ?version = 1   ,才能成功

es中数据 _version=1    当   ?version>1&version_type=external   ,才能成功

posted @ 2019-09-20 15:25  用代码打败魔法  阅读(303)  评论(0编辑  收藏  举报