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

桂林市防疫最新政策北京优化核酸检测

桂林市防疫最新政策,北京优化核酸检测,基于php的网站开发英文文献,wordpress评论内容不显示鱼说,你看不到我眼中的泪,因为我在水中。水说,我能感觉到你的泪,因为你在我心中。 -村上春树 在分布式系统中,多个并发操作对同一资源的修改可能导致数据不一致。为了解决这种问题,Elasticsearch 提供了乐观…

鱼说,你看不到我眼中的泪,因为我在水中。水说,我能感觉到你的泪,因为你在我心中。 -村上春树

在分布式系统中,多个并发操作对同一资源的修改可能导致数据不一致。为了解决这种问题,Elasticsearch 提供了乐观锁(Optimistic Locking)机制,通过控制文档的 _seq_no 和 _primary_term 来确保更新的原子性。本文将通过 Postman 对 Elasticsearch 进行一次乐观锁机制的测试,模拟多个并发请求对同一文档的操作场景。

1.环境配置

在本文的测试中,使用的 Elasticsearch 服务地址为:http://192.168.56.100:9200。

首先,我们通过 Postman 来测试乐观锁的应用场景。这里假设你已经安装并配置好了 Elasticsearch。

Step 1: 创建文档

通过 POST 请求在 Elasticsearch 中创建一个新的文档:
URL:http://192.168.56.100:9200/chhei/system/100
请求方式: POST

请求体:
{ "name": "chhei"
}
输出结果:
{"_index": "chhei","_type": "system","_id": "100","_version": 1,"result": "created","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 2,"_primary_term": 1
}

在这里插入图片描述
通过上面的请求,成功创建了一个名为 chhei 的文档,并分配了文档的 _seq_no 和 _primary_term,这是乐观锁机制中的关键部分。初始版本号为 1,_seq_no 为 2,_primary_term 为 1。

Step 2: 乐观请求 1 —— 更新文档

模拟一次乐观锁请求,通过控制 _seq_no 和 _primary_term 来进行文档更新:

URL: http://192.168.56.100:9200/chhei/system/100?if_seq_no=2&if_primary_term=1
请求方式: POST

请求体:
{"name": "chhei01"
}

查询文档: 接下来通过 GET 请求查看文档更新后的状态:
URL: http://192.168.56.100:9200/chhei/system/100
请求方式: GET

输出结果:
{"_index": "chhei","_type": "system","_id": "100","_version": 2,"_seq_no": 3,"_primary_term": 1,"found": true,"_source": {"name": "chhei01"}
}

在这里插入图片描述
可以看到,文档的 name 字段成功更新为了 chhei01,文档版本号增加到 2,_seq_no 变为 3,_primary_term 保持为 1。

Step 3: 乐观请求 2 —— 模拟版本冲突

尝试使用过期的 _seq_no 和 _primary_term 再次更新文档,模拟一次乐观锁冲突:
URL: http://192.168.56.100:9200/chhei/system/100?if_seq_no=2&if_primary_term=1
请求方式: POST

请求体:
{"name": "chhei02"
}
输出结果:
{"error": {"root_cause": [{"type": "version_conflict_engine_exception","reason": "[100]: version conflict, required seqNo [2], primary term [1]. current document has seqNo [3] and primary term [1]","index_uuid": "ChcNr4J8QzyOk1SuFzvzdQ","shard": "0","index": "chhei"}],"type": "version_conflict_engine_exception","reason": "[100]: version conflict, required seqNo [2], primary term [1]. current document has seqNo [3] and primary term [1]","index_uuid": "ChcNr4J8QzyOk1SuFzvzdQ","shard": "0","index": "chhei"},"status": 409
}

在这里插入图片描述
从返回的错误信息中可以看到,Elasticsearch 检测到当前文档的 _seq_no 已经变为 3,而请求中的 _seq_no 仍然是 2,因此产生了 409 Conflict 错误,提示版本冲突。

http://www.yayakq.cn/news/277173/

相关文章:

  • 做那个的网站谁有网站的建设可以起到什么作用是什么意思
  • 网站开发什么语言自己网站怎么做百度推广
  • 用iis为公司做一个内部网站唐山网站建设怎么样
  • 河北建设机械协会网站个性化网站建设公司电话
  • 深圳市网站建设公司设计公司西安旅游攻略自由行路线推荐
  • 游戏钓鱼网站怎么做网站建设中系统实现
  • 自己如何建企业网站高端网站建设软件开发
  • 网站建设验收报告泰安网络电视台直播
  • 重庆建设注册执业中心网站怎样开一个小外贸公司
  • 怎么查一个网站的域名全网seo优化电话
  • 南宁网站建设兼职为什么网站显示乱码
  • 灵台县门户网站微信网站什么做的
  • 邢台做网站推广费用番禺网站建设找哪家
  • 旅游网站有哪些?wordpress消息通知
  • 男女在浴室里做羞羞事网站wordpress修改字体
  • 网站建设能挣钱吗自定义菜单WordPress
  • 中国建设银行ie下载网站网站图片设置链接
  • 金华网站建设公司宿迁房产网查备案
  • 冷库 东莞网站建设营销型网站分析
  • 影视文化网站建设seo是什么及作用
  • 化妆品网站建设实施方案付费文章 wordpress
  • 给公司做一个网站洛阳网络推广公司
  • 外贸网站建设的败笔无水印效果图网站
  • 做网站时背景图片浮动网络营销策划书4000字
  • 彩票网站开发 极云在职研究生
  • 高职两学一做专题网站广告设计学校
  • 四川省住房城乡建设厅网站专业装饰企业展厅设计公司
  • 怀宁建设局网站怎样做编辑发到网站
  • 网站文字规划无锡工业设计公司
  • 温州网站建设专家分销网站制作条件