当前位置: 首页 > news >正文

闸北做网站公司/seo网站推广公司

闸北做网站公司,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 发其修改
  在这里插入图片描述
  错误演示
  在这里插入图片描述

相关文章: