Elasticsearch-基本操作2
Elasticsearch版本:6.0
为了避免并发修改的冲突问题,数据库中,经常用悲观锁和乐观锁来控制并发问题,而Elasticsearch使用乐观锁。如果源数据在读写过程中被修改,更新将失败,应用程序可以决定进行重试更新、使用新数据、把情况报告给用户等操作。
Elasticsearch的乐观锁实现原理
Elasticsearch是分布式的,文档创建、更新、删除时,新文档必须复制到集群的其他节点;
Elasticsearch是异步并发的,上述复制请求可以被并行的发送,到达目的地后是无序的;
为了保证Elasticsearch并发更新/删除时数据不会丢失,可以利用_version来实现乐观锁,就是说在修改文档时,指定文档的_version,如果该版本不是当前版本,请求将失败。
使用外部系统
使用其他数据库作为数据存储,而Elasticsearch做数据检索,数据库的变更都要复制到Elasticsearch,这个复制过程仍然会有并发问题,ES可以直接使用数据库的版本号,ES增加版本字段,用来和数据库的版本作比较,如果ES当前的版本号小于请求的版本号,则使用请求的版本号进行更新等操作。
使用全局锁、文档锁、数锁来解决并发问题
Elasticsearch-基本操作2的更多相关文章
- ElasticSearch 全文检索— ElasticSearch 基本操作
		REST 简介-定义 REST (REpresentation State Transfer)描述了一个架构样式的网络系统,比如 web 应用程序.它首次出现在 2000 年 Roy Fielding ... 
- Elasticsearch基本操作
		ElasticSearch操作说明 活动 方法 url Body 集群的相关操作 查看健康 Get http://localhost:9200/_cluster/health 查看节点 Get h ... 
- elasticsearch基本操作之--java基本操作 api
		/** * 系统环境: vm12 下的centos 7.2 * 当前安装版本: elasticsearch-2.4.0.tar.gz */ 默认进行了elasticsearch安装和ik安装, 超时配 ... 
- elasticsearch基本操作之--使用QueryBuilders进行查询
		/** * 系统环境: vm12 下的centos 7.2 * 当前安装版本: elasticsearch-2.4.0.tar.gz */ QueryBuilder 是es中提供的一个查询接口, 可以 ... 
- elasticsearch基本操作之--使用java操作elasticsearch
		/** * 系统环境: vm12 下的centos 7.2 * 当前安装版本: elasticsearch-2.4.0.tar.gz */ es 查询共有4种查询类型 QUERY_AND_FETCH: ... 
- ElasticSearch基本操作(安装,索引的创建和删除,映射)
		ElasticSearch基于Lucene的搜索服务器,支持分布式,提供REST接口,可用于云计算,可以实现实时搜索,开源免费.这时很官方的一句话,在使用之前,我们简单的介绍一下安装过程.在官网下载之 ... 
- elasticsearch 基本操作
		安装delete_by_query ,cd进/bin,执行./plugin install delete-by-query DELETE http://192.168.1.12:9200/dd ... 
- ElasticSearch基础知识讲解
		第一节 ElasticSearch概述 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfull web接口.ElasticSea ... 
- Elasticsearch笔记二之Curl工具基本操作
		Elasticsearch笔记二之Curl工具基本操作 简介: Curl工具是一种可以在命令行访问url的工具,支持get和post请求方式.-X指定http请求的方法,-d指定要传输的数据. 创建索 ... 
- ElasticSearch之安装及基本操作API
		ElasticSearch 是目前非常流行的搜索引擎,对海量数据搜索是非常友好,并且在高并发场景下,也能发挥出稳定,快速特点.也是大数据和索搜服务的开发人员所极力追捧的中间件.虽然 ElasticSe ... 
随机推荐
- ICU 是一种说不出的痛啊
			USE [Nursing] GO /****** Object: StoredProcedure [dbo].[P_GetICUVitualSign] Script Date: 05/21/2015 ... 
- day10servlet编程
			Servlet学习的大纲:  . servlet概念及相关接口简介  . servet 执行过程  . servlet路径映射  . 缺省servlet --应用  . servlet生命周 ... 
- adt eclipse 配置问题 error:could not open ...jvm.cfg
			在安装adt eclipse后,打开eclipse提示error:could not open eclipse\jre\lib\amd64\jvm.cfg 据网上显示原因应该是以前安装过java,然后 ... 
- C/C++ Sleep(0)
			Sleep(0) 的意义是放弃当前线程执行的时间片,把自身放到等待队列之中.这时其它的线程就会得到时间片进行程序的程序.Sleep(0)能够降低当前线程的执行速 度,比如:现在系统中有100个线程(先 ... 
- OrderBy和OrderByDescending排序
			昨天有练习对数字阵列进行排序,<C#阵列Array排序>https://www.cnblogs.com/insus/p/10825174.html 其实一切都弄得很复杂,array已经有2 ... 
- Mac安装python细节
			前言 之前在windows平台上安装python直接用Anaconda,优点是所有的科学计算的库都整合进去了,安装方便.在Mac系统下,当然也可以直接安装Anaconda,但是考虑到Mac会自带pyt ... 
- js 正则表达式学习笔记
			正则表达式正则表达式是由一个字符序列形成的搜索模型 语法new RegExp("[abc]")/[abc]//正则表达式主体/修饰符(可选) 1.修饰符i 忽略大小写g 执行全局匹 ... 
- SP2-0734: 未知的命令开头 “IMP ” - 忽略了剩余的行
			描述 在cmd命令窗口中使用imp命令将dmp文件导入到oracle中时,出现了错误: SP2-0734: 未知的命令开头 “IMP ” - 忽略了剩余的行,如图 原因 imp命令是oracle提供的 ... 
- 【Unity】物理碰撞实验
			http://www.cnblogs.com/javawebsoa/archive/2013/05/18/3085818.html 这几天为了准备面试,所以决定对平时学习中的盲点扫盲一下,首先想到的就 ... 
- 洛谷P3768 简单的数学题(莫比乌斯反演+狄利克雷卷积+杜教筛)
			传送门 不会…… 两篇加在一起都看不懂…… https://www.cnblogs.com/cellular-automaton/p/8241128.html https://www.luogu.or ... 
