ElasticSearch view
基础知识类
elasticsearch和数据库之间区别?
elasticsearch:面向文档,数据以文档的形式存储,即JSON格式的对象。更强调数据的搜索、索引和分析。
数据库:更侧重于事务处理、数据的严格结构化和完整性,适用于关系复杂、数据一致性要求高的业务场景。
elasticsearch和核心组件包含哪些?
节点(Node):elasticsearch集群中一个服务器实例,负责存储数据、处理请求等,根据角色不同可分为主节点、数据节点、协调节点等。
集群(Cluster):由一个或多个节点组成的elasticsearch实例的集合,用于存储和管理数据。
索引(Index):文档的集合,类似于关系型数据库中的数据库。
类型(Type):一个索引对应一种文档类型。
文档(Document):elasticsearch中存储的基本单位,以JSON格式表示。
什么是elasticsearch中的“倒排索引”?
正向索引:根据文档查询其中包含的词。
倒排索引:建立一个词到文档的映射关系。
具体来说:
每个词对应一个词典项,词典项中包含了改词的所有文档列表,以及每个文档中改词出现的频率、位置等信息。当用户进行搜索时,elasticsearch会根据查询在词典中查找对应的文档列表,从而快速定位包含该词的文档,从而提高效率。
集群管理与监控类
如何查看elasticsearch集群的健康状态?
curl -X GET “localhost:9200/_cluster/health” 813
green:主分片和副本分片都正常分配。
yellow:主分片分配成功,但副本分片未分配,可能存在节点故障或网络问题导致副本未就绪。
red:主分片未分配,此时部分数据不可用,集群处于异常。
elasticsearch集群中主分片和副本分片的作用是什么?如何配置它们的数量?
主分片:每个索引的文档都会被分配到一个主分片中,主分片负责存储实际的数据。
一个索引可以有多个主分片,主分片的数量在索引创建时确定,并且不能更改。
主分片的数量应根据预计的数据量和集群的节点容量来确定,建议:主分片数量最多不要超过集群中节点的数量,避免单个节点分配过多主分片而造成资源紧张。
副本分片:为主分片的副本,用于高可用性和容错性。
当某个主分片所在的节点发生故障时,副本分片可以提升为主分片继续提供服务。同时也能够分担读请求,提高搜索和查询效率。
副本分片的数量可以在索引创建后动态调整。
案例:在不影响业务的情况下最多可以容忍几台服务器宕机?
如果你要容忍N台服务器故障,集群需要2N+1台服务器,故高可用集群都采用奇数台服务器。
1)5台服务器的最大允许宕机服务器数是多少?
2n+1=5---->n=2
2)6台服务器的最大允许宕机服务器数是多少?
2n+1=6---->n=2
如何监控elasticsearch集群的性能指标?
使用elasticsearch自带的监控API:
/_cat:API可以用于获取集群、节点、索引等基本信息。
_cat/indices:查看索引的健康状态、文档数量、存储大小。
_cat/nodes:查看节点的状态、CPU使用率、内存使用率等。
_nodes/status:获取节点的详细统计信息(含索引、分片、缓存、线程池等)。
第三方监控工具:Prometheus + Grafana。
prometheus可以收集elasticsearch的各种指标数据,包含JVM堆内存使用率、索引和搜索的吞吐量、分片分配情况等。
通过Grafana可视化这些数据,及时发现潜在的性能瓶颈和问题。
性能优化与故障处理
如何优化elasticsearch的搜索性能?
合理设置索引的分片和副本数量:
根据数据量和集群资源合理配置主分片数和副本数,避免分片过多或过少。
优化查询语句:
采用更高效的查询方式。
例如避免使用通配符查询(如*)开头的查询方式。
调整java堆内存大小:
elasticsearch运行在jvm上,适当的堆内存大小对性能至关重要。
通常建议将堆内存大小设置为系统物理内存的一半即可。且不超过32GB,避免降低性能。
硬件升级和优化:
对于高并发、大数据量的场景,可以通过增加节点、升级服务器硬件(如,CPU\内存\SSD磁盘等)来提升集群的整体性能。
当elasticsearch节点出现故障或集群为red时,如何进行故障排查?
收集故障信息:
查看elasticsearch的日志文件,日志文件通常位于logs目录下,所以从中获取节点故障的错误信息、异常堆栈等,初步判断故障原因。
使用curl -X GET “localhost:9200/_cluster/health”|jq查看集群健康状态,确保集群状态为red的具体原因(如主分片未分配等)。
检查节点连接和网络状况:
确认故障节点是否可以正常通信,检查网络连接是否正常,是否有网络分区或其他网络故障导致节点无法通信。
可通过ping命令测试节点之间的连通性,或使用telnet测试节点间的端口是否开放。
检查硬件资源:
查看故障节点的CPU、内存、磁盘等硬件资源使用情况,是否存在资源被耗尽的情况。
采用top/free -m/df -h等命令查看硬件资源状态。
根据故障原因进行恢复操作:
节点硬件故障(磁盘损坏):更换硬件并更新启动节点。
网络故障:修复网络连接后,集群会自动进行数据恢复和分片分配。
主分片未分配:根据具体情况,如增加副本数、调整分片分配策略等来解决。
相关文章:
ElasticSearch view
基础知识类 elasticsearch和数据库之间区别? elasticsearch:面向文档,数据以文档的形式存储,即JSON格式的对象。更强调数据的搜索、索引和分析。 数据库:更侧重于事务处理、数据的严格结构化和完整性,适用于…...
一文读懂Python之random模块(31)
random模块是Python的内置标准库,用于生成各类随机数,可以用作生成网站初始登录密码和随机验证码。 一、random模块简介 random模块可以生成随机数,包括随机整数、浮点数、随机元素等。 二、random模块相关概念 随机数: 是指在…...
12.udp
12.udp **1. UDP特性****2. UDP编程框架(C/S模式)****3. UDP发送接收函数****4. UDP编程练习** 1. UDP特性 连接特性:无链接,通信前无需像TCP那样建立连接。可靠性:不可靠,不保证数据按序到达、不保证数据…...
Upscayl-官方开源免费图像AI增强软件
upscayl 链接:https://pan.xunlei.com/s/VOI0Szqe0fCwSSUSS8zRqKf7A1?pwdhefi#...
【Super Tilemap Editor使用详解】(十七):常见问题解答(FAQ)
1.问题:我更新了 Unity 版本后,资源无法正常工作或代码出现错误。 解答:当你使用不同版本的 Unity 打开项目时,应该删除项目根目录下的 Library 文件夹。此外,如果遇到窗口问题,可以将窗口布局重置为默认布局。 2.问题:我在 SceneView 中看不到工具栏,也无法在图块地图…...
SpringBoot Web开发(SpringMVC)
SpringBoot Web开发(SpringMVC) MVC 核心组件和调用流程 Spring MVC与许多其他Web框架一样,是围绕前端控制器模式设计的,其中中央 Servlet DispatcherServlet 做整体请求处理调度! . 除了DispatcherServletSpringMVC还会提供其他…...
苍穹外卖第一天
角色分工 技术选型 pojo子模块 nginx反向代理 MD5密码加密...
C# Winform enter键怎么去关联button
1.关联按钮上的Key事件按钮上的keypress,keydown,keyup事件随便一个即可private void textBox1_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode Keys.Enter){this.textBox2.Focus();}}2.窗体上的事件private void textBox2_KeyPress(object sen…...
LeGO LOAM坐标系问题的自我思考
LeGO LOAM坐标系问题的自我思考 IMU坐标系LeGO LOAM代码分析代码 对于IMU输出测量值的integration积分过程欧拉角的旋转矩阵VeloToStartIMU()函数TransformToStartIMU(PointType *p) IMU坐标系 在LeGO LOAM中IMU坐标系的形式采用前(x)-左(y)-上(z)的形式,IMU坐标系…...
vim交换文件的作用
1.数据恢复:因为vim异常的退出,使用交换文件可以恢复之前的修改内容。 2.防止多人同时编辑:vim检测到交换文件的存在,会给出提示,以避免一个文件同时被多人编辑。 (vim交换文件的工作原理:vim交换文件的工作…...
PHP实现混合加密方式,提高加密的安全性(代码解密)
代码1: <?php // 需要加密的内容 $plaintext 授权服务器拒绝连接;// 1. AES加密部分 $aesKey openssl_random_pseudo_bytes(32); // 生成256位AES密钥 $iv openssl_random_pseudo_bytes(16); // 生成128位IV// AES加密(CBC模式)…...
五. Redis 配置内容(详细配置说明)
五. Redis 配置内容(详细配置说明) 文章目录 五. Redis 配置内容(详细配置说明)1. Units 单位配置2. INCLUDES (包含)配置3. NETWORK (网络)配置3.1 bind(配置访问内容)3.2 protected-mode (保护模式)3.3 port(端口)配置3.4 timeout(客户端超时时间)配置3.5 tcp-keepalive()配置…...
安卓通过网络获取位置的方法
一 方法介绍 1. 基本权限设置 首先需要在 AndroidManifest.xml 中添加必要权限: xml <uses-permission android:name"android.permission.INTERNET" /> <uses-permission android:name"android.permission.ACCESS_NETWORK_STATE" /&g…...
python leetcode 笔记
只为记录一些python相关的特殊写法 无穷大,无穷小,NAN float(inf), float(-inf), float(nan) 判断字符的类型 isdigit(x) isspace(x) 字符串拼接 /.join([a,b,c]) # a/b/c 格式转换,字符转整形 ord(a) # 97 chr(97) # a 进制转…...
使用HttpClient和HttpRequest发送HTTP请求
项目中经常会用到向第三方系统发送请求来传递数据或者获得信息,一般用的比较多的为HttpClient 和 HttpRequest,这里简要总结一下 HttpClient 和 HttpRequest 的用法 一、HttpClient 1. 发送get请求 public static String get(String url, Map<Stri…...
(9) 上:学习与验证 linux 里的 epoll 对象里的 EPOLLIN、 EPOLLHUP 与 EPOLLRDHUP 的不同
(1)经过之前的学习。俺认为结论是这样的,因为三次握手到四次挥手,到 RST 报文,都是 tcp 连接上收到了报文,这都属于读事件。所以: EPOLLIN : 包含了读事件, FIN 报文的正常四次挥手、…...
C#属性和字段(访问修饰符)
不同点逻辑性/灵活性存储性访问性使用范围安全性属性(Property)源于字段,对字段的扩展,逻辑字段并不占用实际的内存可以被其他类访问对接收的数据范围做限定,外部使用增加了数据的安全性字段(Field)不经过逻辑处理占用内存的空间及位置大部分字段不能直接被访问内存使用不安全 …...
【C语言指针】指针和函数
文章目录 一、前言二、指针函数2.1 概念2.2 定义2.3 具体例子 三、函数指针3.1 概念3.2 定义3.3 具体例子3.4 回调函数3.4.1 概念3.4.2 例子13.4.3 例子2 四、函数指针数组4.1 概念4.2 定义4.3 具体例子 五、函数指针数组的指针5.1 概念5.2 定义5.3 具体例子 一、前言 关于指针…...
因果推断与机器学习—用机器学习解决因果推断问题
Judea Pearl 将当前备受瞩目的机器学习研究戏谑地称为“仅限于曲线拟合”,然而,曲线拟合的实现绝非易事。机器学习模型在图像识别、语音识别、自然语言处理、蛋白质分子结构预测以及搜索推荐等多个领域均展现出显著的应用效果。 在因果推断任务中,在完成因果效应识别之后,需…...
2025全自动企业站群镜像管理系统 | 支持繁简转换拼音插入
2025全自动企业站群镜像管理系统 | 支持繁简转换拼音插入 在全球化的今天,企业面临着管理多站点的挑战,尤其是跨语言和地理位置的站点。为此,我们设计了一套基于PHP的全自动企业站群镜像管理系统,它不仅能够自动化站点的管理&…...
基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发
基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发 摘要 随着人工智能技术的不断发展,语音识别在会议记录、语音笔记等场景中得到了广泛应用。本文介绍了一个基于Python和阿里云百炼大模型的语音识别与文本保存工具的开发过程。该工具能够高效地识别东…...
日志2025.2.1
日志2025.2.1 1.做了敌人状态机 public class EnermyStateMachine { public EnermyState currentState { get; private set; } public void InitializeState(EnermyState startState) { currentState startState; currentState.Enter(); } public void Change…...
GIS与相关专业软件汇总
闲来无事突然想整理一下看看 GIS及相关领域 究竟有多少软件或者工具包等。 我询问了几个AI工具并汇总了一个软件汇总,不搜不知道,一搜吓一跳,搜索出来了大量的软件,大部分软件或者工具包都没有见过,不知大家还有没有要…...
webrtc编译需要常用环境变量以及相关名词解释
set vs2022_installD:\\vs2022 set GYP_MSVS_OVERRIDE_PATHD:\\vs2022 set GYP_GENERATORSmsvs-ninja,ninja set WINDOWSSDKDIRD:\\Windows Kits\10 set DEPOT_TOOLS_WIN_TOOLCHAIN0 set GYP_MSVS_VERSION2022 这些环境变量是为了编译 WebRTC 时让 GYP/Depot Tools 正确找到 V…...
飞书项目流程入门指导手册
飞书项目流程入门指导手册 参考资料准备工作新建空间国际化配置新建工作项字段管理新建字段对接标识授权角色 流程管理基础说明流程节点配置流程节点的布局配置页面上布局按钮布局配置 流程节点驳回流程图展示自动化字段修改 局限性 参考资料 飞书官方参考文档:飞书…...
Android学习制作app(ESP8266-01S连接-简单制作)
一、理论 部分理论见arduino学习-CSDN博客和Android Studio安装配置_android studio gradle 配置-CSDN博客 以下直接上代码和效果视频,esp01S的收发硬件代码目前没有分享,但是可以通过另一个手机网络调试助手进行模拟。也可以直接根据我的代码进行改动…...
docker直接运行arm下的docker
运行环境是树莓派A 处理器是 arm32v6 安装了docker,运行lamp 编译安装php的时候发现要按天来算,于是用电脑vm下的Ubuntu系统运行arm的docker 然后打包到a直接导入运行就可以了 第一种方法 sudo apt install qemu-user-static 导入直接运行就可以了…...
PYH与MAC的桥梁MII/MIIM
在学习车载互联网时,看到了一句话,Processor通过DMA直接存储访问与MAC之间进行数据的交互,MAC通过MII介质无关接口与PHY之间进行数据的交互。常见的以太网硬件结构是,将MAC集成进Processor芯片,将PHY留在Processor片外…...
如何使用SliverList组件
文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了沉浸式状态栏相关的内容,本章回中将介绍SliverList组件.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在这里介绍的SliverList组件是一种列表类组件,类似我们之前介…...
SQL UCASE() 函数详解
SQL UCASE() 函数详解 在SQL中,UCASE() 函数是一个非常有用的字符串处理函数,它可以将字符串中的所有小写字母转换为大写字母。本文将详细介绍UCASE() 函数的用法、语法、示例以及其在实际应用中的优势。 一、UCASE() 函数简介 UCASE() 函数是SQL标准…...
