[每周一更]-(第125期):模拟面试|NoSQL面试思路解析

在这里插入图片描述

文章目录

    • 39|Elasticsearch 高可用:怎么保证 Elasticsearch 的高可用?
      • 1. Elasticsearch 的节点有什么角色?一个节点可以扮演多个角色吗?
      • 2. 在实践中,怎么合理安排不同节点扮演的角色?
      • 3. 什么是候选主节点和投票节点?投票节点可以被选为主节点吗?为什么要引入投票节点?
      • 4. 可以说一下你们公司的 Elasticsearch 是如何部署的吗?性能如何?
      • 5. 你用 Elasticsearch 解决过什么问题?为什么用 Elasticsearch?可以用别的框架吗?
      • 6. Elasticsearch 为什么引入分片?为了解决什么问题?
      • 7. 当一个写入请求发送到 Elasticsearch 之后,发生了什么?
      • 8. Elasticsearch 是实时的吗?
      • 9. Elasticsearch 的 Translog 是拿来干什么的?它可以保证数据一定不丢失吗?
      • 10. 什么是 Commit Point?用来干什么?
      • 11. Elasticsearch 在合并段的时候,会影响到已有的查询吗?一个查询怎么知道应该用合并前的段,还是应该用合并后的段?
      • 12. 如果我的写入数据流量很大,怎么保证我的 Elasticsearch 不会崩溃?
      • 13. 你知道什么是协调节点吗?它的作用是什么?怎么保证协调节点高可用?
    • 40|Elasticsearch查询:怎么优化 Elasticsearch 的查询性能?
      • 1. 你的业务写入和查询的性能如何?Elasticsearch 的性能瓶颈是多少?
      • 2. 如何设计 Elasticsearch 的索引?
      • 3. 你有没有优化过 Elasticsearch 的查询性能?怎么优化?为什么可以这么优化?
      • 4. 为什么 Elasticsearch 的分页查询也那么慢?可以怎么优化?
        • 优化方法:
      • 5. 你有没有优化过 Elasticsearch 的 JVM?怎么优化的?
      • 6. 如果 Elasticsearch 经常出现 Full GC,怎么排查和优化?
      • 7. 怎么为 Elasticsearch 选择适合垃圾回收算法?
      • 8. swap 对 Elasticsearch 有什么影响?应该怎么调整?
      • 9. 为什么 Elasticsearch 容易出现文件描述符耗尽的问题?可以怎么优化?
        • 优化措施:
    • 41|MongoDB:MongoDB 是怎么做到高可用的?
      • 1. 你们公司的 MongoDB 是如何部署的?可用性有多高?
      • 2. 你用 MongoDB 解决过什么问题?你为什么要用 MongoDB?用 MySQL 行不行?
      • 3. 和关系型数据库比起来,MongoDB 有哪些优势?
      • 4. MongoDB 是如何分片的?
      • 5. MongoDB 的块是什么?
      • 6. 什么情况下会触发块迁移?怎么迁移?
      • 7. MongoDB 的负载均衡(再平衡)是指什么?
      • 8. MongoDB 的配置服务器有什么作用?
      • 9. MongoDB 的复制机制是怎样的?
      • 10. 为什么 MongoDB 的 oplog 总是很多?
      • 11. 怎么控制 MongoDB 的写入语义?你用的是什么语义?为什么用这个语义?
      • 12. 有没有遇到过配置服务器崩溃的问题?怎么提高配置服务器的可用性?
      • 13. 当 MongoDB 的主节点崩溃之后,如何选出一个新的主节点?
      • 14. 怎么样可以让 MongoDB 在主从选举的时候优先选择同机房的从节点?
    • 42|MongoDB高性能:怎么优化 MongoDB 的查询性能?
      • 1. 你的业务里面使用 MongoDB 的性能如何?能撑住多大的读写流量?
      • 2. 你有没有遇到过 MongoDB 的性能问题?后面是如何解决的?
      • 3. 当我一个查询请求落到了 MongoDB 之上后,MongoDB 是怎么执行这个查询的?
      • 4. mongos 是什么?拿来干什么?怎么优化它的性能?
      • 5. 怎么设计 MongoDB 的索引?怎么判定一个索引是否合适?
      • 6. 什么是 ESR 规则?为何要遵守 ESR 规则?不遵守行不行?
      • 7. 大文档有什么问题?可以怎么解决大文档引发的问题?
      • 8. 什么时候要嵌入文档?有什么优势?
      • 9. 怎么优化 MongoDB 的排序(分页)查询?
      • 10. 为什么要尽可能只查询必要的字段?
      • 11. 怎么优化 MongoDB 所在的操作系统?这些优化为什么会有效果?

39|Elasticsearch 高可用:怎么保证 Elasticsearch 的高可用?

  1. Elasticsearch 的节点有什么角色?一个节点可以扮演多个角色吗?
  2. 在实践中,怎么合理安排不同节点扮演的角色?
  3. 什么是候选主节点和投票节点?投票节点可以被选为主节点吗?为什么要引入投票节点?
  4. 可以说一下你们公司的 Elasticsearch 是如何部署的吗?性能如何?
  5. 你用 Elasticsearch 解决过什么问题?为什么用 Elasticsearch?可以用别的框架吗?
  6. Elasticsearch 为什么引入分片?为了解决什么问题?
  7. 当一个写入请求发送到 Elasticsearch 之后,发生了什么?
  8. Elasticsearch 是实时的吗?
  9. Elasticsearch 的 Translog 是拿来干什么的?它可以保证数据一定不丢失吗?
  10. 什么是 Commit Point?用来干什么?
  11. Elasticsearch 在合并段的时候,会影响到已有的查询吗?一个查询怎么知道应该用合并前的段,还是应该用合并后的段?
  12. 如果我的写入数据流量很大,怎么保证我的 Elasticsearch 不会崩溃?
  13. 你知道什么是协调节点吗?它的作用是什么?怎么保证协调节点高可用?

1. Elasticsearch 的节点有什么角色?一个节点可以扮演多个角色吗?

Elasticsearch 的节点主要有以下几种角色:

  • 主节点(Master Node):负责集群的管理和协调,如索引创建、删除和集群状态管理。
  • 数据节点(Data Node):用于存储数据和执行数据相关的操作(如搜索、聚合)。
  • 协调节点(Coordinating Node):处理客户端请求,并将请求路由到相应的节点。
  • 超时节点(Ingest Node):用于预处理文档(如数据清洗、转换)后再索引。

一个节点可以扮演多个角色,例如一个数据节点也可以是主节点。

2. 在实践中,怎么合理安排不同节点扮演的角色?

在实践中,可以根据集群规模和资源情况合理安排节点角色:

  • 小型集群:可以将少数节点设置为数据节点和主节点,简化部署。
  • 中型和大型集群:建议分离主节点和数据节点,主节点负责管理,数据节点专注于数据存储和查询,以提高性能和稳定性。
  • 添加协调节点:在流量高的情况下,可以增加专门的协调节点,减轻数据节点和主节点的负担。

3. 什么是候选主节点和投票节点?投票节点可以被选为主节点吗?为什么要引入投票节点?

  • 候选主节点(Candidate Master):在选举过程中,任何节点都可以成为候选主节点。
  • 投票节点(Voting Node):参与主节点选举的节点。投票节点是具备选举资格的节点,但未必是当前主节点。

投票节点可以被选为主节点。引入投票节点的原因是为了提高选举的可靠性和容错能力,确保在网络分区或节点故障的情况下,能够通过多数投票机制选举出有效的主节点。

4. 可以说一下你们公司的 Elasticsearch 是如何部署的吗?性能如何?

我们公司的 Elasticsearch 部署通常包括以下策略:

  • 多节点集群:采用至少三个主节点以确保高可用性。
  • 数据和主节点分离:数据节点专门负责存储和查询,主节点负责集群管理。
  • 监控与备份:使用监控工具(如 Elasticsearch X-Pack)跟踪集群健康状态,定期备份数据。

这种部署策略下,性能表现良好,能够高效处理大规模数据和查询请求。

5. 你用 Elasticsearch 解决过什么问题?为什么用 Elasticsearch?可以用别的框架吗?

我曾用 Elasticsearch 解决过以下问题:

  • 日志分析:使用 Elasticsearch 进行大规模日志数据的索引和分析,便于快速查询和可视化展示。
  • 全文检索:通过 Elasticsearch 的强大搜索功能,实现复杂的全文检索需求。

选择 Elasticsearch 的原因包括其高性能、分布式特性和丰富的查询功能。虽然可以使用其他框架(如 Solr 或传统数据库),但 Elasticsearch 在实时性和处理大数据方面表现更优。

6. Elasticsearch 为什么引入分片?为了解决什么问题?

Elasticsearch 引入分片的原因主要包括:

  • 水平扩展:通过将数据划分为多个分片,可以将数据分布到多个节点上,实现水平扩展。
  • 并行处理:分片可以并行处理搜索请求,提高查询性能。
  • 容错性:可以为每个分片创建副本,提高数据的可用性和容错能力。

7. 当一个写入请求发送到 Elasticsearch 之后,发生了什么?

当一个写入请求发送到 Elasticsearch 时,主要步骤如下:

  1. 路由:根据文档 ID 和配置的路由算法确定目标分片。
  2. 索引:将文档写入目标分片,并更新相关的索引结构。
  3. Translog:将写入操作记录到 Translog,以确保操作的持久性。
  4. 刷新:根据刷新策略,将内存中的文档更新到硬盘索引中,确保可查询性。

8. Elasticsearch 是实时的吗?

Elasticsearch 不是严格的实时系统,而是近实时(Near Real-Time,NRT)系统。数据写入后,通常需要经过短暂的延迟才能被查询到,这个延迟由配置的刷新间隔决定,默认是 1 秒。

9. Elasticsearch 的 Translog 是拿来干什么的?它可以保证数据一定不丢失吗?

Translog(事务日志)用于记录未持久化的写入操作,以确保在发生故障时可以恢复数据。它的主要作用包括:

  • 数据持久化:在写入操作后,Translog 确保操作记录不会丢失。
  • 故障恢复:在节点崩溃或重启时,可以通过 Translog 恢复丢失的写入操作。

虽然 Translog 大幅提高了数据的可靠性,但并不能保证数据一定不丢失。如果 Translog 在刷新之前被删除或损坏,仍有可能导致部分数据丢失。

10. 什么是 Commit Point?用来干什么?

Commit Point 是指在写入操作完成后,数据最终被持久化到硬盘的时间点。它用于确保数据的持久性和一致性,主要作用包括:

  • 保证数据一致性:确保所有写入操作在特定时间点被可靠地持久化。
  • 优化性能:通过将多个写入操作合并,减少对硬盘的写入频率,提高性能。

11. Elasticsearch 在合并段的时候,会影响到已有的查询吗?一个查询怎么知道应该用合并前的段,还是应该用合并后的段?

在合并段的过程中,Elasticsearch 设计了非阻塞的查询机制,合并不会影响到已有的查询。一个查询会同时访问合并前和合并后的段,查询引擎会智能地决定使用哪个段来获取数据,确保查询结果的一致性和正确性。

12. 如果我的写入数据流量很大,怎么保证我的 Elasticsearch 不会崩溃?

为保证高流量写入下 Elasticsearch 不会崩溃,可以采取以下措施:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/482746.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【人工智能】Transformers之Pipeline(二十七):蒙版生成(mask-generation)

​​​​​​​ 目录 一、引言 二、蒙版生成(mask-generation) 2.1 概述 2.2 facebook/sam-vit-base 2.3 pipeline参数 2.3.1 pipeline对象实例化参数 2.3.2 pipeline对象使用参数 2.3.3 pipeline对象返回参数 2.4 pipeline实战 2.5 模型排…

蓝牙设备驱动开发

文章目录 一、蓝牙协议架构二、蓝牙协议的HCI传输层三、编程框架 一、蓝牙协议架构 蓝牙是无线数据和语音传输的开放式标准,它将各种通信设备、计算机及其终端设备、各种数字数据系统、甚至家用电器采用无线方式联接起来。它的传输距离为10cm~10m&#…

【Linux】开启你的Linux之旅:初学者指令指南

Linux相关知识点可以通过点击以下链接进行学习一起加油! 在 Linux 开发中,GDB 调试器和 Git 版本控制工具是开发者必备的利器。GDB 帮助快速定位代码问题,Git 则提供高效的版本管理与协作支持。本指南将简明介绍两者的核心功能与使用技巧&…

你还没有将 Siri 接入GPT对话功能吗?

由于各种原因,国内ios用户目前无缘自带 AI 功能,但是这并不代表国内 ios 无法接入 AI 功能,接下来手把手带你为iPhone siri 接入 gpt 对话功能。 siri 接入 chatGPT 暂时还无法下载 ChatGPT app,或者没有账号的读者可以直接跳到…

bash命令缓存导致命令执行失败的问题

1、问题背景 为了修复老版本 vsftpd 的安全漏洞,需要把生产环境上 vsftpd 版本升级到 vsftpd-3.0.5,因为直接使用 rpm 包的方式进行升级还涉及到下层依赖包的升级(生产环境上的依赖包版本不能随意变更,可能会影响其他上层应用),所…

import.meta.glob动态加载图片

import.meta.glob 基于Vite(Vue 3 默认构建工具),用于动态导入模块,特别是当你需要批量导入文件或模块时. const modules import.meta.glob(/path/to/files/**/*.js);注意:import.meta.glob 是针对 源代码&#xff…

困扰解决:mfc140u.dll丢失的解决方法,多种有效解决方法全解析

当电脑提示“mfc140u.dll丢失”时,这可能会导致某些程序无法正常运行,给用户带来不便。不过,有多种方法可以尝试解决这个问题。这篇文章将以“mfc140u.dll丢失的解决方法”为主题,教大家有效解决mfc140u.dll丢失。 判断是否是“mf…

状态模式S

状态模式(State Pattern)是行为设计模式的一种,它允许一个对象在其内部状态发生改变时改变其行为。这个对象被视为类型的有限状态机(Finite State Machine)。 在状态模式中,我们创建表示各种状态的对象和一…

Webman中实现定时任务

文章目录 Webman中实现定时任务一、引言二、安装与配置1、安装Crontab组件2、创建进程文件3、配置进程文件随Webman启动4、重启Webman5、Cron表达式(补充)例子 三、使用示例四、总结 Webman中实现定时任务 一、引言 在现代的后端开发中,定时…

瀚高创库建表pgsql

1.瀚高下载地址: 下载 (highgo.com)https://www.highgo.com/down_main.html 2.瀚高linux安装 上传deb文件到ubuntu系统中 执行 dpkg -i hgdb-see-4.5.8-fe4791c.x86_64.deb 命令安装数据库 安装完成后,会在/opt 目录下生成安装目录 数据库安装完毕后…

5.11【机器学习】

先是对图像进行划分 划分完后, 顺序读取文件夹,在文件夹里顺序读取图片, 卷积层又称为滤波器,通道是说滤波器的个数,黑白通道数为1,RGB通道个数为3 在输入层,对于输入层而言,滤波…

Ajax基础总结(思维导图+二维表)

一些话 刚开始学习Ajax的时候,感觉很模糊,但是好像学什么都是这样的,很正常,但是当你学习的时候要持续性敲代码,边敲代码其实就可以理解很多了。然后在最后的总结,其实做二维表之后,就可以区分…

Python 自动化办公的 10 大脚本

大家好,我是你们的 Python 讲师!今天我们将讨论 10 个实用的 Python 自动化办公脚本。这些脚本可以帮助你简化日常工作,提高效率。无论是处理 Excel 文件、发送邮件,还是自动化网页操作,Python 都能派上用场。 1. 批量…

【北京迅为】iTOP-4412全能版使用手册-第二十章 搭建和测试NFS服务器

iTOP-4412全能版采用四核Cortex-A9,主频为1.4GHz-1.6GHz,配备S5M8767 电源管理,集成USB HUB,选用高品质板对板连接器稳定可靠,大厂生产,做工精良。接口一应俱全,开发更简单,搭载全网通4G、支持WIFI、蓝牙、…

[Linux] 信号(singal)详解(一)

标题:[Linux] 信号(singal)详解 水墨不写bug (图片来源于网络) 目录 一、认识信号 1、认识信号 2、信号特点 3、基本概念 二、信号的产生(5种方式) 三、信号的保存 正文开始: 一、认识信号 1、认识信…

简单介绍下 VitePress 中的 vp-doc 和 vp-raw

VitePress 是一个轻量级的静态网站生成器,专为快速构建文档网站而设计。它是基于 Vite 和 Vue 3 构建的,旨在提供快速的开发体验和高效的构建过程。 存在两个需要注意的点:vp-doc 和 vp-raw,它们代表了不同的 CSS 样式类和用途&a…

服务器数据恢复—服务器raid0阵列硬盘指示灯显示黄颜色的数据恢复案例

服务器数据恢复环境&故障情况: 某品牌服务器上有一组由两块SAS硬盘组建的raid0阵列,上层是windows server操作系统ntfs文件系统。服务器上一个硬盘指示灯显示黄颜色,该指示灯对应的硬盘离线,raid不可用。 服务器数据恢复过程…

普及组集训--图论最短路径

定义:表示顶点u到顶点v的一条边的权值(边权) 最短路径算法有常见的四种:floyd,dijkstra,Bellman-Ford,SPFA 不过Bellman-Ford并不常用,所以本文不提; 重点在于dijkstr…

Linux内核ftrace的使用

文章目录 ftrace使用一、ftrace的功能与用途二、ftrace的实现原理三、ftrace的使用步骤1. 查看tracer:通过查看available\_tracers文件,了解当前内核中可用的插件追踪器2. 选择tracer3. 设置参数和过滤器4.开启追踪5. 读取追踪结果 四、ftrace的常用trac…

【笔记总结】华为云:应用上云后的安全规划及设计

一、背景和问题 数字化时代,随着信息技术的飞速发展,企业和各类组织纷纷将自身的应用程序迁移至云端。云计算凭借其诸多优势,如成本效益、可扩展性、灵活性以及便捷的资源共享等,已然成为了现代业务运营的重要支撑。 今年&#xf…