当前位置: 首页 > news >正文

分布式搜索引擎es 面试突击

es elastocsearch

倒排索引是在数据查询之前建立,在查询的时候可以直接通过关键词定位到文档内容。用空间换时间

分布式架构原理说一下?

es底层是基于lucene来的   大概就是一个用于全文检索的jar包

用es来做分布式的搜索引擎  可以承载一秒钟几千的搜索

es用来存储数据的基本单位是索引。

index:mysql里的一张表

type:一个index里可以有多个type,每个type的字段都是差不多的,但是有一些略微的差别

比如mysql中的表  有些订单是实物订单,有些是游戏点卡。两种订单大部分字段一样,但是少部分字段可能有略微的差别。

mapping代表了对这个type表结构的定义,定义了这个type中每个字段名称,字段是什么类型,然后还有这个字段的各种配置

document:往index里的一个type里面写一条数据,叫做一条document,一条document代表了mysql中某个表的一行,每个document有多个field,每个field就代表了document中一个字段的值

架构:

每台机器中有一个es进程,每个es进程中有多个shard,每个shard都会在其他的某个机器上有一个副本   一个索引的数据会被分布式存储在多个shard上面    primary为主版本,replica为副版本

如果说masterNode节点(代表一个机器)突然挂了,那么es会重新选举一个新的节点成为masterNode     原本需要的不是shard01跟shard02么  此时新的masterNode里面是02跟03,02是replica Shard  此时会将它变成primary Shard   

kafka是只能在lead里面读写   而es是可以在primary里面写读写  可以在replica里面读

当刚刚宕机了的节点恢复后,它里面的shard02会变成replica shard

写入与查询的工作原理?

客户端可以挑任意一个进程去写,进去以后  如果是找到了replica节点,那么replica会把数据路由到primary中,写进primary,然后primary会将数据同步到replica中

写进shard怎么写的?

在写进shard之后  会写进内存buffer中,同时会写进tanslog日志中,每隔一段时间会把buffer中的数据刷进磁盘,refresh操作->刷到segmentFile中,segmentfile 中就存储最近1秒内buffer中写入的数据  刷到segmentfile之前会先进os cache操作系统级别的一个内存缓存中 为什么说es是准实时的,因为是每隔1秒refresh一次,写入的数据1秒后才能被看到

这样一直重复,新的数据不断进入buffer和translog中,不断将buffer数据写入一个又一个新的segment file中去,每次refresh完buffer清空,tanslog保留,随着过程推进,translog会变得越来越大,当translog达到一定长度的时候,就会触发conmit操作

commit操作:1写comimit point  2 OS cache数据fsync强刷到磁盘上去 3.清空translog日志文件

一般不叫commit  一般叫flash操作

translog主要是用来做数据的恢复  内存如果宕机 那么就可以根据translog来做一个恢复

1.他是准实时的,数据写入一秒后可以搜索到,2可能会丢失数据的,你的数据有5秒的时间停留在buffer、translog、segment file  os cache中  

此时如果宕机  可能会导致五秒的数据丢失

如果你希望一定不丢数据的话 ,可以设置参数,每次写入一条数据,都是直接写入buffer,同时写入磁盘中的translog

删除数据:有个.del的文件  如果某条数据被删除了,.del文件中会标记这条数据。然后你就不会搜索到这条数据了

merge操作:三个segment合并成一个segment,如果原来的segment中某条数据被标志成.del  那么在合并后  它就没了  被物理删除了

读数据过程:不断轮询 每次随机找一个shard去读,

在几十亿数量级场景下如何优化查询性能?

仅仅只是写入es中要用来检索的少数几个字段就可以了 , fileSystemcache里面的内存要大一点

你最好写入es的数据小于等于 fileSystem cache   最好让查询大量的命中filesystemcache

数据预热:经常要访问的数据 把他刷到filesystemCache中  就是从内存拿  而不是磁盘

比如电商 你可以吧一些平时查看得比较多的商品,热数据提前后台搞个程序,每隔一分钟,自己主动访问一次,刷到filesystemCache中去

冷热分离:  就是经常用的数据放在一张表里面,不经常用的放在另一个shard里面

用es做分页,越往后翻越慢

两个思路来解决:

1.不允许深度分页

2.默认翻得越深,性能越差

微博:可以用scroll  api

其实现在很多产品是不能随意翻页的   做成的是往下拉的这种  而不是说一下从一百页跳到200页

生产环境的分布式搜索引擎是怎么部署的?

中小型公司:

 

集群部署了5台机器,每台机器是6核64G的,集群总内存是320G

日增量数据大概是2000万条,每天日常增量数据大概是500MB,每月

相关文章:

分布式搜索引擎es 面试突击

es elastocsearch 倒排索引是在数据查询之前建立,在查询的时候可以直接通过关键词定位到文档内容。用空间换时间 分布式架构原理说一下? es底层是基于lucene来的 大概就是一个用于全文检索的jar包 用es来做分布式的搜索引擎 可以承载一秒钟几千的…...

社会心理学的六个经典实验

社会心理学的六个经典实验 社会心理学(Social Psychology)是一门研究我们周围情境的力量的科学,尤其关注我们是如何看待他人,如何影响他人的。更确切地说,社会心理学是一门就人们如何看待他人,如何影响他人…...

Java 单例模式详解

单例模式(Singleton Pattern)是一种常见的设计模式,它可以确保某个类只有一个实例,并提供对该实例的全局访问点。本文将详细介绍 Java 中所有单例模式实现,包括懒汉式、饿汉式、枚举式、双重检查锁定式、静态内部类式等…...

AI读心重磅突破登Nature!大脑信号1秒被看穿,还能预测未来画面

最近,来自洛桑联邦理工学院的研究团队提出了一种全新的方法,可以用AI从大脑信号中提取视频画面。论文已登Nature,却遭网友疯狂「打假」。 现在,AI不仅会读脑,还会预测下一个画面了! 利用AI,一个…...

【SAP Abap】X-DOC:SNRO - ABAP流水号应用

【SAP Abap】X-DOC:SNRO - ABAP流水号应用 1、定义表(字段域)2、定义流水号3、使用流水号4、测试程序 1、定义表(字段域) 2、定义流水号 Tcode: SNRO/SNUM, 根据以上创建的字段域 YDSNRO,创建对…...

基于AT89C51单片机的交通灯设计与仿真

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87763760?spm1001.2014.3001.5503 源码获取 主要内容: 设计一个能够控制十二盏交通信号灯的模拟系统,:利用单片机的定时器定时,令十字路口…...

MySQL系列三(定位慢SQL、SQL优化与索引优化)Using filesort

文章目录 1. 慢SQL1.1 定位慢SQL(慢查询日志)1.2 慢SQL优化整体思路 2. 索引优化3. SQL语句优化回表Using filesort 1. 慢SQL 1.1 定位慢SQL(慢查询日志) 在mysql 配置文件中 (my.conf),进行下面配置&…...

免费使用GPT-4.0?【AI聊天 | GPT4教学】 —— 微软 New Bing GPT4 申请与使用保姆级教程

目录 认识 New Bing 2. 注册并登录 Microsoft 账号 3. 如何免科学上网使用 New Bing? 4. 加入 WaitList 候补名单 5. 使用 New Bing! 6. 使用 Skype 免科学上网访问 New Bing! 7. 在 Chrome 浏览器中使用 New Bing! 8. 总…...

渲染对电脑伤害大吗_如何减少渲染伤机?

虽然说摄影穷三代,但想要自己的本地配置跟上自己的创作速度,高昂的硬件配置支出也可以让自己穷一段时间。CG制作过程中,渲染是必不可少的一步,而且这一步也是很吃“机器”的,那很多人也会担心,如果经常用自…...

非线性最小二乘

非线性最小二乘 目录 文章目录 非线性最小二乘目录 [toc]1 非线性最小二乘估计3 非线性最小二乘的实现 1 非线性最小二乘估计 在经典最小二乘法估计中,假定被解释变量的条件期望是关于参数的线性函数,例如 E ( y ∣ x ) a b x E(y|x) abx E(y∣x)a…...

23.5.7总结(学习通项目思路)

项目: 1.登录修改:删除数据库中的状态,通过使用 ConcurrentHashMap来作为是否在线的判断,通过设定一个退出的按钮,发消息给服务端主动移除对应的值。 2.注册:增加了手机号的填写,正则判断&…...

如何生成api接口获取宝贝商品详情,商品详情接口,产品详情

API (Application Programming Interface)是指应用程序接口,它是一种通过编写一组统一的规则,开发一个软件来与其他应用程序进行通讯的技术。API可以方便应用程序之间的交流和数据共享,以及增强应用程序的功能。 在现代应用程序中&#xff0…...

微服务---Redis实用篇-黑马头条项目-登录功能(短信验证缓存,用户信息缓存)

黑马头条项目-登录功能(短信验证缓存,用户信息缓存) 1、短信登录 1.1、导入黑马点评项目 1.1.1 、导入SQL 1.1.2、有关当前模型 手机或者app端发起请求,请求我们的nginx服务器,nginx基于七层模型走的事HTTP协议,可以实现基于Lua直接绕开t…...

美国纽扣电池的包装电池盒必须附带警告标签16 CFR 第 1700.20

美国纽扣电池及硬币电池的包装、电池盒必须附带警告标签16 CFR 第 1700.20 美国要求在纽扣电池或硬币电池的包装上、电池盒上以及包含纽扣电池或硬币电池的消费品附带说明和手册上贴上警告标签。 商品法规、标准和要求纽扣电池和硬币电池以下所有项: 16 CFR 第 17…...

AcWing——方格迷宫(有点不一样的迷宫问题)

4943. 方格迷宫 - AcWing题库 1、题目 给定一个 n 行 m 列的方格矩阵。 行从上到下依次编号为 1∼n,列从左到右依次编号为 1∼m。 第 i 行第 j 列的方格表示为 (i,j)。 矩阵中的方格要么是空地(用 . 表示),要么是陷阱&#xf…...

《常规脉搏传输时间作为人体血压变化标志》阅读笔记

目录 一、论文摘要 二、论文十问 Q1: 论文试图解决什么问题? Q2: 这是否是一个新的问题? Q3: 这篇文章要验证一个什么科学假设? Q4: 有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员? …...

java学习之异常三

目录 一、throws 一、基本说明 二、使用细节 二、自定义异常 一、 基本概念 ​编辑二、自定义异常的步骤 三、实例 四、练习 三、throw和throws的区别 四、本章作业 第一道 第二题 第三题 第四题 一、throws 一、基本说明 package com.hspedu.throws_;import java.i…...

生产者向 Kafka 发送消息的执行流程

&#xff08;1&#xff09;生产者要往 Kafka 发送消息时&#xff0c;需要创建 ProducerRecoder,代码如下&#xff1a; ProducerRecord<String,String> record new ProducerRecoder<>("CostomerCountry","Precision Products","Fr…...

Linux命令·netstat

netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据&#xff0c;一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序&#xff0c;它能提供TCP连接&#xff0c;TCP和UDP监听&#xff0c;进程内存管理的相关报告。 如果你的计算机有时候…...

《心安即是归处》读书笔记

目录 作者简介 经典摘录 一个人活在世界上&#xff0c;必须处理好三个关系 什么叫人生呢&#xff1f; 谈一下人性的问题 了解人生的意义与价值 人生之美 评断一本书的好与坏有什么标准呢&#xff1f; 知足知不足 作者简介 季羡林&#xff0c;随便查询一下作者简介&…...

CVPR 2023反无人机数据集实战:用ModelScope上的开源模型快速上手目标检测

CVPR 2023反无人机数据集实战&#xff1a;用ModelScope上的开源模型快速上手目标检测无人机技术的普及带来了新的安全挑战&#xff0c;从隐私侵犯到关键设施威胁&#xff0c;反无人机技术正成为计算机视觉领域的热点。CVPR 2023反无人机竞赛提供的开源数据集和基线模型&#xf…...

数组专项(一):数组排序、去重、查找

大家好,欢迎来到《算法面试60讲(2026最新版全真题带解析)》第19篇!上一篇我们彻底吃透了字符串专项的核心难点——BF暴力匹配与KMP高效匹配算法,搞定了字符串模块面试最难的算法考点。从本节课开始,我们正式进入算法面试第一高频模块:数组专项。 在算法面试中,数组是出…...

量子软件测试的挑战与优化策略

1. 量子软件测试的挑战与机遇量子计算正在从实验室走向实际应用&#xff0c;随之而来的是对可靠量子软件的需求激增。与传统软件不同&#xff0c;量子程序面临三大独特挑战&#xff1a;首先&#xff0c;量子态的叠加性和纠缠性使得测试变得异常复杂。一个n量子比特系统可以同时…...

机器学习与SHAP在教育公平研究中的应用:精准定位学业困境根源

1. 项目概述&#xff1a;当机器学习遇见教育公平&#xff0c;我们如何精准定位学业困境的根源&#xff1f;在拉丁美洲的教育研究领域&#xff0c;一个长期困扰政策制定者和研究者的核心问题是&#xff1a;究竟是什么因素&#xff0c;在复杂的社会经济背景下&#xff0c;系统性地…...

口碑最好的AI论文写作工具推荐(从文献整理到论文成稿全流程)适合全体毕业生

还在为选题方向纠结、文献资料翻找耗时、开题报告无从下手、论文框架反复修改、查重率居高不下、降重过程痛苦不堪&#xff0c;甚至答辩PPT还要临时抱佛脚&#xff1f;作为学术新手、应届生或本科硕士毕业生&#xff0c;面对论文写作的重重关卡&#xff0c;流程复杂、操作门槛高…...

OmenSuperHub:基于WMI BIOS控制的高性能笔记本硬件管理方案

OmenSuperHub&#xff1a;基于WMI BIOS控制的高性能笔记本硬件管理方案 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 在惠…...

紧急预警:DeepSeek代码生成中未公开的3类逻辑漂移现象(附自动化检测脚本+修复模板)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;紧急预警&#xff1a;DeepSeek代码生成中未公开的3类逻辑漂移现象&#xff08;附自动化检测脚本修复模板&#xff09; 近期在多轮生产级代码审计中发现&#xff0c;DeepSeek-R1&#xff08;v2.5&#x…...

如何快速实现U盘文件自动备份:USBCopyer终极指南

如何快速实现U盘文件自动备份&#xff1a;USBCopyer终极指南 【免费下载链接】USBCopyer &#x1f609; 用于在插上U盘后自动按需复制该U盘的文件。”备份&偷U盘文件的神器”&#xff08;写作USBCopyer&#xff0c;读作USBCopier&#xff09; 项目地址: https://gitcode.…...

Awoo Installer:让Switch游戏安装变得简单高效的终极解决方案

Awoo Installer&#xff1a;让Switch游戏安装变得简单高效的终极解决方案 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer 厌倦了繁琐的Switch游戏安…...

泰拉瑞亚地图编辑器:从像素画布到创意世界的蜕变之旅

泰拉瑞亚地图编辑器&#xff1a;从像素画布到创意世界的蜕变之旅 【免费下载链接】Terraria-Map-Editor TEdit - Terraria Map Editor - TEdit is a stand alone, open source map editor for Terraria. It lets you edit maps just like (almost) paint! It also lets you cha…...