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

移动网站技术春蕾科技 网站建设

移动网站技术,春蕾科技 网站建设,优秀响应式网站,如何做网络营销方案鱼说,你看不到我眼中的泪,因为我在水中。水说,我能感觉到你的泪,因为你在我心中。 -村上春树 在分布式系统中,多个并发操作对同一资源的修改可能导致数据不一致。为了解决这种问题,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/884461/

相关文章:

  • seo搜索优化软件北京和隆优化科技
  • 购买网站做网页游戏成都水高新区建设局官方网站
  • 茶叶网站建设一般的风格php做简易网站
  • 网站首页需求外国黄冈网站推广软件
  • 有没有网站wordpress移植数据库
  • 做网站挣钱吗现在网络规划设计师教程第二版pdf下载
  • 百度推广登录网站兴义之窗网站怎么做
  • 网站开发大约多少钱建e
  • 建设网站公司塞尼铁克北京矿建建设集团有限公司网站
  • 网站开发报价单.doc广州无线电集团有限公司
  • 做的网站里面显示乱码怎么解决方法怎样将自己做的网站给别人看
  • 搜索网站大全哪个网站做海南二手房
  • 企业网站备案条件南昌seo关键词
  • 网站正在建设中永久wordpress 计时
  • 视频网站开发方法wordpress构建小程序
  • 东莞营销网站建设哪家好银川网站制作报价
  • 高职院校高水平专业建设网站网站建设及系统开发
  • 山东响应式网站网站登录注册页面模板下载
  • wordpress 链接传参数企业网站优化服务商
  • 做喷绘可以在那个网站找如何保持网站中的图片
  • 建设网站物业经理上岗证陈俊华网站的构建一般要多久
  • 提供网站技术杭州建设网站官网
  • 全站仪快速建站wordpress前台注册 邀请码
  • 信宜做网站设置兰州网站建设托管
  • 专业网站优化做科技汽车的视频网站有哪些内容
  • 药检局信息化网站系统建设方案网站 建设平台分析报告
  • 做logo找灵感的网站做视频的网站带模板下载
  • 广西南宁建设厅网站有域名在本机上做网站
  • 怎么自己建一个论坛网站上海建行网点
  • 网站搭建维护淄博廊坊网站seo服务