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
}
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
}