zoukankan      html  css  js  c++  java
  • Elasticsearch-基本操作2


    Elasticsearch版本:6.0


        为了避免并发修改的冲突问题,数据库中,经常用悲观锁和乐观锁来控制并发问题,而Elasticsearch使用乐观锁。如果源数据在读写过程中被修改,更新将失败,应用程序可以决定进行重试更新、使用新数据、把情况报告给用户等操作。

    Elasticsearch的乐观锁实现原理

    Elasticsearch是分布式的,文档创建、更新、删除时,新文档必须复制到集群的其他节点;

    Elasticsearch是异步并发的,上述复制请求可以被并行的发送,到达目的地后是无序的;

        为了保证Elasticsearch并发更新/删除时数据不会丢失,可以利用_version来实现乐观锁,就是说在修改文档时,指定文档的_version,如果该版本不是当前版本,请求将失败。

    使用外部系统

    使用其他数据库作为数据存储,而Elasticsearch做数据检索,数据库的变更都要复制到Elasticsearch,这个复制过程仍然会有并发问题,ES可以直接使用数据库的版本号,ES增加版本字段,用来和数据库的版本作比较,如果ES当前的版本号小于请求的版本号,则使用请求的版本号进行更新等操作。

    使用全局锁、文档锁、数锁来解决并发问题

  • 相关阅读:
    Github简单使用
    软件架构
    软件架构
    软件架构
    VB.net 捕获项目全局异常
    C#里面的三种定时计时器:TIMER
    深入分析委托与事件
    C#预处理器指令
    C# 实现透明可移动窗体
    多元一次方程解法 C++
  • 原文地址:https://www.cnblogs.com/bigshark/p/7906183.html
Copyright © 2011-2022 走看看