闸北做网站公司,seo网站推广公司,花店网站建设课程设计论文,微信推广网站1.演示基于_version进行乐观锁并发控制 1.1 先构造出一条数据来
PUT /test_index/test_type/12
{"tset_field":"test test"
}1.2 开启俩个客户端,获取数据 GET /test_index/test_type/12 1.3 其中一个客户端修改数据(同…
1.演示基于_version进行乐观锁并发控制
1.1 先构造出一条数据来
PUT /test_index/test_type/12
{"tset_field":"test test"
}
1.2 开启俩个客户端,获取数据 GET /test_index/test_type/12
1.3 其中一个客户端修改数据(同时带上数据的版本号,要求,es中的数据版本号,跟客户端中的数据版本号一致,才能修改成功)
1.4 另一个客户端,尝试基于version=1的数据进行修改,同样带上version版本号,进行乐观锁的并发控制
1.5 在乐观锁成功阻止并发问题之后,尝试正确的完成更新
2.external version 进行乐观锁并发控制
es提供了一个feature,可以不使用它内部的version进行并发控制,可以基于你自己维护的一个版本号进行并发控制,
?version=1 :你提供的version和es中的_version一致的时候,才能修改成功
?version=1&version_type=external :你提供的version比es中的_version大的时候,才能完成修改
2.1 先构造一条数据
2.2两个客户端同时查询这条数据
2.3第一个客户端先进行修改, 假如 此时的客户端程序是自己在数据库中获取到的这条数据,比如说是2
2.4模拟第二个客户端,同时拿到自己数据库中维护的那个版本号,也是2,同时基于version=2 发其修改
错误演示