Elasticsearch文档读写模型实现原理

本文介绍了Elasticsearch的文档读写模型实现原理,包括主分片如何处理操作、错误处理机制、基本读模型以及异常时的影响。在写操作中,主分片执行操作并转发到同步副本,确保数据一致性。读操作则通过协调节点转发到相关分片。当出现异常时,如副本失败,主分片会请求master删除问题副本并重建。主备模型提供了一定的容错能力。
摘要由CSDN通过智能技术生成
  1. 验证请求是否符合Elasticsearch的接口规范,如果不符合,直接拒绝。

  2. 在主分片上执行操作(例如索引、更新或删除一个文档)。如果执行过程中出错,直接返回错误。

  3. 将操作转发到当前同步副本集的每个副本。如果有多个副本,则并行执行。(in-sync当前可用、激活的副本)。

  4. 一旦所有的副本成功地执行了操作并对主服务器进行了响应,主服务器就会承认对客户机的请求的成功完成。写请求的流程如下图所示(图片来源于《Elasticsearch权威指南》):

在这里插入图片描述

错误处理:

在索引过程中,许多事情可能会出错——磁盘可能会被破坏,节点可以彼此断开,或者一些配置错误可能导致一个副本的操作失败,尽管它在主服务器上是成功的。这些都是罕见的,但主要的是要对它们做出反应。

另外一种情况是如果主服务器不可用,托管主节点的节点将向master发送一条消息。索引操作将等待(默认情况下最多1分钟),以便master服务器将其中一个副本提升为一个新的主节点。然后,该操作将被转发到新的主服务器进行处理。请注意,主服务器(master)还监控各个节点的健康状况,并可能决定主动降级主节点。这通常发生在持有主节点的节点通过网络问题与集群隔离的情况下。为了更好的理解master服务器与主分片所在服务器的关系,下面给出一个ElasticSearch的集群说明图:

在这里插入图片描述

其中NODE1为整个集群的master服务器,而第一个复制组(P0,R0,RO,其主分片所在服务器NODE3),第二个复制组(P1,R1,R1,其主分片所在服务器NODE1)。

一旦在主服务器上成功执行了操作,主服务器就必须确保数据最终一致,即使由于在副本上执行失败或由于网络问题导致操作无法到达副本(或阻止副本响应)造成的。为了避免数据在复制组内数据的不

  • 26
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值