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 ,才能成功