elasticsearch使用乐观锁控制并发

乐观锁的机制在java并发编程,数据库操作,es中都是一样的,使用版本号来控制并发更新。基本步骤就是查询数据(得到版本号)–>更新数据(版本号加1)–>更新失败–>重新查询数据。

#查询
curl http://127.0.0.1:9200/megacorp/employee/3?pretty
#结果:
{
  "_index" : "megacorp",
  "_type" : "employee",
  "_id" : "3",
  "_version" : 4,
  "found" : true,
  "_source" : {
    "name" : "star",
    "age" : 25
  }
}
#被其它用户更新
curl -XPUT http://127.0.0.1:9200/megacorp/employee/3 -d '{"name":"star","age":26}'
#指定版本更新时异常
curl -XPUT http://127.0.0.1:9200/megacorp/employee/3?version=4 -d '{"name":"star","age":26}'

版本符合预期即更新,不符合则重新查询更新,就是CAS操作。

猜你喜欢

转载自blog.csdn.net/weixin_43275277/article/details/106764870