Elasticsearch 7.3版本中,第二部分内容有哪些技巧分享?
- 内容介绍
- 文章标签
- 相关推荐
本文共计608个文字,预计阅读时间需要3分钟。
1、悲观与乐观机制+为控制并发问题,我们常用锁机制。分为悲观锁和乐观锁两种机制。悲观锁:非常悲观,所有情况都上锁。所有情况都上锁,只有一个线程可以操作数据。乐观锁:相对乐观,大部分情况不加锁。大部分情况不加锁,只有在并发冲突时才加锁。具体例子为数据。
1、悲观锁与乐观锁机制为控制并发问题,我们通常采用锁机制。分为悲观锁和乐观锁两种机制。
悲观锁:很悲观,所有情况都上锁。此时只有一个线程可以操作数据。具体例子为数据库中的行级锁、表级锁、读锁、写锁等。
特点:优点是方便,直接加锁,对程序透明。缺点是效率低,并发能力非常弱。
乐观锁:很乐观,对数据本身不加锁。提交数据时,通过一种机制验证是否存在冲突,如es中通过版本号验证。
特点:优点是并发能力高。缺点是操作繁琐,在提交数据时,高并发的情况下,可能反复重试多次。
2、内部基于_version乐观锁控制
es对于文档的增删改都是基于版本号。
第一次执行
PUT /test_index/_doc/4 { "test_field": "test" }
此时可以版本号为1
在执行一次:
此时版本号已变为2,且result的值也为update
在执行删除文档操作
DELETE /test_index/_doc/4
版本号变为3,result的值为deleted
再执行一次新增语句,注意这里要和前一条删除语句间隔时间不要太长,最好立即执行。
本文共计608个文字,预计阅读时间需要3分钟。
1、悲观与乐观机制+为控制并发问题,我们常用锁机制。分为悲观锁和乐观锁两种机制。悲观锁:非常悲观,所有情况都上锁。所有情况都上锁,只有一个线程可以操作数据。乐观锁:相对乐观,大部分情况不加锁。大部分情况不加锁,只有在并发冲突时才加锁。具体例子为数据。
1、悲观锁与乐观锁机制为控制并发问题,我们通常采用锁机制。分为悲观锁和乐观锁两种机制。
悲观锁:很悲观,所有情况都上锁。此时只有一个线程可以操作数据。具体例子为数据库中的行级锁、表级锁、读锁、写锁等。
特点:优点是方便,直接加锁,对程序透明。缺点是效率低,并发能力非常弱。
乐观锁:很乐观,对数据本身不加锁。提交数据时,通过一种机制验证是否存在冲突,如es中通过版本号验证。
特点:优点是并发能力高。缺点是操作繁琐,在提交数据时,高并发的情况下,可能反复重试多次。
2、内部基于_version乐观锁控制
es对于文档的增删改都是基于版本号。
第一次执行
PUT /test_index/_doc/4 { "test_field": "test" }
此时可以版本号为1
在执行一次:
此时版本号已变为2,且result的值也为update
在执行删除文档操作
DELETE /test_index/_doc/4
版本号变为3,result的值为deleted
再执行一次新增语句,注意这里要和前一条删除语句间隔时间不要太长,最好立即执行。

