ElasticSearch6.2.4(7)——ES基于version做乐观锁控制

1.基于version做乐观锁控制并发
PUT /index_test/type_test/6
{
  "name":"steam"
}


{
  "_index": "index_test",
  "_type": "type_test",
  "_id": "6",
  "_version": 1,
  "result": "created",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 0,
  "_primary_term": 1
}
得到version=1


如果使用version=3会报错,如图:版本不一致

PUT /index_test/type_test/6?version=1
{
  "name":"steam111"
}
添加的version参数版本必须和es里面的版本一致
{
  "_index": "index_test",
  "_type": "type_test",
  "_id": "6",
  "_version": 2,
  "result": "updated",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 1,
  "_primary_term": 1
}


2.使用自己的版本做乐观锁控制
PUT /index_test/type_test/6?version=3&version_type=external
{
  "name":"steam222"
}
需要加version_type参数,version里的参数必须比es里面的版本高不能相等或少
{
  "_index": "index_test",
  "_type": "type_test",
  "_id": "6",
  "_version": 3,
  "result": "updated",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 2,
  "_primary_term": 1
}

猜你喜欢

转载自blog.csdn.net/haozhishang/article/details/80062604