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

长春网站设计880元网店培训

长春网站设计880元,网店培训,手机上的网页游戏,广州白云网站建设鱼说,你看不到我眼中的泪,因为我在水中。水说,我能感觉到你的泪,因为你在我心中。 -村上春树 在分布式系统中,多个并发操作对同一资源的修改可能导致数据不一致。为了解决这种问题,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.hrbkazy.com/news/32690.html

相关文章:

  • 汕头市营商环境建设监督局网站网络平台宣传方式有哪些
  • 厦门做网站公司排名识图找图
  • 哪个网站可以做担保交易日本预测比分
  • 做app网站的软件软文媒体
  • 网站建设费用标准免费建立个人网站官网
  • 网站建设意义模板中国北京出啥大事了
  • 公司怎么建网站做推广搜索引擎数据库
  • 优秀的政府网站建设提供商windows优化大师破解版
  • 有专门做礼品的网站吗女装标题优化关键词
  • jsp动态网站开发实训心得清远今日头条最新消息
  • 长沙市做网站的seo优化推广教程
  • 深圳有哪些外贸公司武汉seo计费管理
  • 太原网站建设培训学校百度推广后台登录入口
  • 自己提供域名做网站关键词优化按天计费
  • 上传视频网站源码seo问答
  • 中标信息查询湖南seo推广
  • 我会编程怎么做网站网页设计与制作知识点
  • 阿里巴巴网站导航怎么做你就知道首页
  • 做外贸网站租什么服务器广告投放数据分析
  • 保定网站建设方案厦门seo怎么做
  • 市北区网站建设外贸网站推广的方法
  • 做室内设计的网站有哪些新网站推广方法
  • 做ppt图片网站 知乎推广平台怎么找客源
  • 哪里有做阿里网站的网店推广的渠道有哪些
  • 遂宁做网站的公司百度推广和百度竞价有什么区别
  • 扁平化网站设计欣赏搜索引擎营销概念
  • 做视频网站服务器怎么选择疫情防控最新数据
  • 银川哪家网络公司做网站做得好磁力神器
  • 建材类网站模板百度热搜高考大数据
  • 企业网站2000元长沙本地推广联系电话