Elasticsearch版本控制理解

本文介绍了Elasticsearch的版本控制机制,如何处理并发和乱序问题。Elasticsearch使用_version来实现乐观锁,确保变更的正确顺序执行。文章还探讨了内部版本与外部版本的区别,以及最佳实践,包括如何指定版本类型和版本号以避免覆盖错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

背景

具体使用说明


背景

Elasticsearch 是分布式的。当文档创建、更新或删除时, 新版本的文档必须复制到集群中的其他节点。Elasticsearch 也是异步和并发的,这意味着这些复制请求被并行发送,并且到达目的地时也许 顺序是乱的 。 Elasticsearch 提供了版本 _version 功能,实际上和大多数并发场景处理一样,版本号属于乐观锁的应用范畴

当我们 index , GET 和 delete 请求时,我们指出每个文档都有一个 _version (版本)号,当文档被修改时版本号递增。 Elasticsearch 使用这个 _version 号来确保变更以正确顺序得到执行。如果旧版本的文档在新版本之后到达,它可以被忽略,防止乱序问题带来的覆盖

最佳实践

Elasticsearch 版本类型分为:内部版本 和 外部版本

内部版本号上面介绍的是Elasticsearch的,每次都会_version自动加1。

外部版本号的处理方式和内部版本号的处理方式有些不同,是通过业务方指定传入的版本号, Elasticsearch 会检查当前 _version 是否 小于 指定传入的版本号,如果小于,则更新成功,否则更新失败。

 

在写入索引的时间,ES提供了指定的版本类型和可以传入的版本号

IndexRequest request 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值