ES中文档的版本号(二)
前言
书接上回版本号
还能有点啥 咱们再唠唠
上回说到版本号的更新机制及如何查询版本号
详情看这里---->https://blog.youkuaiyun.com/qq_43641069/article/details/118358015
版本号的意义
简单来说 四个字儿:防止冲突。
ElasticSaerch需要一种方法确保文档的旧版本不会覆盖新的版本:ES利用_version (版本号)的方式来确保应用中相互冲突的变更不会导致数据丢失。需要修改数据时,需要指定想要修改文档的version号,如果该版本不是当前版本号,请求将会失败。
说到防止冲突,那一定会想到一个东西 那就是“锁”。
这种通过版本号来防止冲突的方式就属于乐观锁。
外部版本号(external version)
es中不仅可以使用它自带的内部版本号,还可以基于你自己维护的一个版本号来进行并发控制。举个列子,加入你的数据在mysql里也有一份,然后你的应用系统本身就维护了一个版本号,无论是什么自己生成的,程序控制的。这个时候,你进行乐观锁并发控制的时候,可能并不是想要用es内部的_version来进行控制,而是用你自己维护的那个version来进行控制。
?version=1
?version=1&version_type=external
version_type=external&#