elasticsearch面试八股文

这篇具有很好参考价值的文章主要介绍了elasticsearch面试八股文。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

es的存储和更新机制

Elasticsearch(ES)是一个开源的分布式搜索和分析引擎,其存储架构和更新机制如下:

存储架构:

索引(Index):ES的数据组织单元是索引,每个索引可以包含多个类型(Types),类似于数据库中的表。索引是由一个或多个分片(Shard)组成的,用于将数据水平分割和分布在集群中的多个节点上。
分片(Shard):每个索引可以被分为多个分片,每个分片是一个独立的工作单元,包含部分数据。分片允许数据分布在集群的多个节点上,提高了性能和可伸缩性。
副本(Replica):每个分片可以有零个或多个副本。副本是分片的完全复制,用于提供冗余和故障恢复。副本也可以用于负载均衡查询。

更新机制:

Near Real-Time(NRT):ES采用了近实时的更新机制,即文档的索引和搜索操作不会立即生效,而是需要经过一小段时间的延迟。默认情况下,ES的刷新间隔是1秒钟,因此写入的数据在1秒后才能被搜索到。这种机制可以提高吞吐量和性能。
索引操作(Indexing):当需要更新一个文档时,ES会先检查该文档是否已经存在于索引中。如果文档不存在,则会创建新的文档并将其添加到合适的分片上。如果文档已经存在,则会进行更新操作,即先标记旧文档为删除,然后再创建一个新的文档版本。这样做是为了保留历史版本,并支持版本控制和文档回滚。
分布式协调:当有多个副本时,ES使用Raft一致性算法来协调各个副本之间的写入操作,确保数据的一致性和可靠性。
总结起来,Elasticsearch的存储架构是由索引、分片和副本组成的,利用分布式的方式将数据分散在多个节点上。更新机制采用近实时的方式,通过索引操作和分布式协调来处理文档的更新和写入操作。这使得ES具备高性能、可伸缩和容错能力。


说一下raft算法

Raft是一种分布式一致性算法,用于解决分布式系统中的复制日志问题。它旨在提供容错性和易理解性,并通过选举机制来确保系统的可用性。

以下是Raft一致性算法的基本原理:

领导者选举:在一个Raft集群中,每个节点可能处于三种状态:领导者(leader)、追随者(follower)和候选人(candidate)。初始时,所有节点都是追随者。当追随者未能接收到领导者的心跳消息时,会发起选举变成候选人,并请求其他节点投票支持。如果候选人赢得了大多数节点的选票,就成为新的领导者。

日志复制:领导者负责接收客户端的请求并将其转化为日志条目。每个节点都维护一个日志,其中包含按顺序编号的日志条目。领导者将新的日志条目复制到它的追随者节点上,一旦大多数节点确认接收并复制该日志条目,就认为该操作提交成功。

容错性:Raft通过日志复制和选举机制实现容错性。如果一个领导者失效,集群中的其他节点会进行选举以选择一个新的领导者。只有在大多数节点都正常工作的情况下,才能进行日志条目的提交。

安全性:Raft通过在选举过程中使用随机超时时间和限制选举过程中票数的增长速率来防止选举过程中的活锁(例如,若干个候选人无法取得胜利)。此外,任何一个节点只能接受最新的日志条目,确保了数据的一致性。

总体而言,Raft算法提供了一种可靠的方式来实现分布式系统中的一致性。它通过领导者选举、日志复制和容错机制来确保数据的一致性和集群的可用性。由于其易理解的特点,Raft在分布式系统领域广泛应用,并成为了Paxos算法的有效替代方案。文章来源地址https://www.toymoban.com/news/detail-602925.html


到了这里,关于elasticsearch面试八股文的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java八股文面试[数据结构]——HashMap扩容优化

         知识来源: 【2023年面试】HashMap在扩容上做了哪些优化_哔哩哔哩_bilibili  

    2024年02月11日
    浏览(31)
  • java八股文面试[数据库]——自适应哈希索引

    自适应Hash索引( Adatptive Hash Index,内部简称 AHI )是InnoDB的 三大特性之一 ,还有两个是 Buffer Pool简称BP、 双写缓冲区 (Doublewrite Buffer)。 1、自适应即我们 不需要自己处理 ,当InnoDB引擎根据 查询统计 发现某一查询满足hash索引的数据结构特点,就会给其建立一个hash索引;

    2024年02月10日
    浏览(34)
  • 面试数据库八股文五问五答第四期

    作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的! ⭐点赞⭐收藏⭐不迷路!⭐ 1)什么情况下 mysql 会索引失效? 不使用索引列进行查询:当查询条件不包含索引列时,MySQL无法使用索引进行快速查找,而会进行全表扫描,导致索引失效。 使用函

    2024年02月04日
    浏览(29)
  • java八股文面试[数据库]——MySQL索引的数据结构

    知识点: 【2023年面试】mysql索引的基本原理_哔哩哔哩_bilibili 【2023年面试】mysql索引结构有哪些,各自的优劣是什么_哔哩哔哩_bilibili

    2024年02月10日
    浏览(31)
  • java八股文面试[数据结构]——ArrayList和LinkedList区别

      ArrayList和LinkedList的异同 二者的线程都不安全,相对线程安全的Vector,执行效率高。此外,ArrayList时实现了基于动态数组的数据结构,LinkedList基于链表的数据结构,对于随机访问get和set,ArrayList觉得优于LinkedList比较占优势,因为LinledList要移动指针。对于新增和删除操作add

    2024年02月11日
    浏览(38)
  • java八股文面试[数据库]——可重复读怎么实现的(MVCC)

    可重复读(repeatable read)定义: 一个事务执行过程中看到的数据,总是 跟这个事务 在 启动时 看到的数据是一致的。 MVCC MVCC, 多版本并发控制 , 用于实现 读已提交 和 可重复读 隔离级别。 MVCC的核心就是 Undo log多版本链 + Read view ,“MV”就是通过 Undo log来保存数据的历史版

    2024年02月09日
    浏览(30)
  • java八股文面试[数据库]——MySQL死锁的原因和处理方法

    1) 表的死锁 产生原因 : 用户A访问表A(锁住了表A),然后 又访问表B ;另一个用户B访问表B(锁住了表B),然后企图 访问表A ;这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B才能继续,同样用户B要等用户A释放表A才能继续,这就死锁就产生了。 用户A--》A表(表

    2024年02月09日
    浏览(38)
  • java八股文面试[数据库]——B树和B+树的区别

    B树是一种树状数据结构,它能够存储数据、对其进行排序并允许以 O(logn) 的时间复杂度进行查找、顺序读取、插入和删除等操作。 B树中允许一个结点中包含多个key,可以是3个、4个、5个甚至更多,并不确定,需要看具体的实现。现在我们选 择一个参数M,来构造一个B树,我

    2024年02月09日
    浏览(42)
  • 【面试】前端面试八股文

    前端思维导图 优点 大可爱html+css+js+node 全面可下载 千峰html+css 简洁漂亮 千峰js 简洁漂亮 (1)标签引用 (2)文件引用 解释型语言:JS不需要被编译为机器码而是直接执行,开发轻松 动态型语言:JS变量与任何值类型都不关联,都可以重新分配类型值 弱类型语言:变量数据

    2024年02月02日
    浏览(39)
  • 计算机复试面试基础知识(八股文)(数据库、数据结构、操作系统、计网、机组等)

    数据库绪论 1、简述三层模式、两级映射,分别有什么作用? 模式(逻辑模式):是数据库中全体数据的逻辑结构和特征的描述,是数据库系统模式结构的中间层,即不涉及数据的物理存储细节,也与具体应用程序开发工具语言无关。 外模式(用户模式):是用户能看见和使

    2023年04月09日
    浏览(96)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包