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

面试题-Elasticsearch集群架构和调优手段(超全面)

在这里插入图片描述


对于Elasticsearch(ES),我了解并有经验。在我之前的公司,我们有一个相对大型的ES集群,以下是该集群的架构和一些调优手段的概述:

1. 集群架构

在这里插入图片描述

  • 集群规模:我们的ES集群由15个节点组成,涵盖了数据节点和主节点。
  • 索引数量:我们有30多个索引,根据不同的数据通道进行划分。每天根据日期递增创建新的索引,大约每天增加20个以上的索引。
  • 分片数:每个索引有10个主分片,用于水平分布和并行处理数据。
  • 数据大小:每个索引的大小受限制在150GB以内。
    (根据实际的项目经验来说 如果没有就按照这个说就行,前提是你得理解技术细节 不然容易露馅)

2. 调优手段

在这里插入图片描述

2.1 设计阶段调优

在这里插入图片描述

  • 基于日期模板创建索引:通过使用roll over API,我们按照日期模板创建新的索引,以便更好地管理和维护数据。
  • 使用别名进行索引管理:通过别名来引用索引,而不是直接使用具体的索引名称,简化了索引切换和管理的过程。
  • 定时force_merge操作:每天凌晨定时执行force_merge操作,以减少碎片并释放磁盘空间。
  • 冷热分离机制:将热数据存储在SSD上,以提高检索效率,同时定期对冷数据进行shrink操作,以减少存储空间占用。
  • 使用Curator进行索引的生命周期管理:通过Curator工具自动管理索引的创建、删除和归档等操作。
  • 合理设置分词器:针对需要进行全文搜索的字段,选择合适的分词器以提高搜索质量和效率。
  • 结合字段属性进行Mapping设置:在Mapping阶段,根据字段的需求和特性,设置是否需要检索、是否需要存储等属性。
2.2 写入调优

在这里插入图片描述

  • 副本数设置为0:在写入数据之前暂时关闭副本,以提高写入性能。
  • 关闭refresh_interval:在写入过程中,将refresh_interval设置为-1,禁用刷新机制,以减少刷新操作对写入性能的影响。
  • 批量写入:使用bulk批量写入API,将多个文档一次性提交,减少频繁的网络开销和IO操作。
  • 恢复副本数和刷新间隔:在写入完成后,恢复副本数和刷新间隔,以确保数据的可靠性和及时可见性。
  • 自动生成ID:尽量使用ES自动生成的ID,避免额外的ID生成操作和性能消耗。
2.3 查询调优

在这里插入图片描述

  • 禁用通配符查询:尽量避免使用通配符查询,因为它们会增加查询的复杂性和开销。

  • 避免批量terms查询:对于包含大量terms的查询,尽量避免使用批量terms查询,以免影响查询性能。

  • 合理使用keyword类型:尽可能将字段设置为keyword类型,充分利用倒排索引机制,提高查询效率。

  • 基于时间范围进行索引选择:对于大量数据的情况,可以根据时间范围先确定索引,以减少需要搜索的索引数量。

  • 设置合理的路由机制,在选择合理的路由机制时,可以考虑以下几个因素:
    在这里插入图片描述

    数据特点:根据数据的特点,选择适合的路由字段。例如,如果数据中包含地理位置信息,可以选择将地理位置作为路由字段,以便将具有相似地理位置的文档存储在相邻的分片上,提高查询效率。

    查询需求:根据常见的查询需求,选择合适的路由策略。例如,如果经常根据时间范围进行查询,可以选择将时间作为路由字段,使具有相近时间的文档存储在相邻的分片上,以便快速定位需要查询的数据。
    分片数量:考虑集群中的分片数量和规模,选择适当的路由策略。如果集群中的分片较少,可以使用哈希路由(默认路由策略),以确保数据均匀分布。如果集群中的分片较多,可以选择更具体的路由策略,以满足特定的查询需求。

理的路由策略,以实现数据的均衡分布和查询的优化。


2.4 其他调优

在这里插入图片描述

  • 部署调优:优化硬件配置、网络拓扑和节点布局,以确保集群的性能和可靠性。
  • 业务调优:根据具体业务需求和查询模式,优化查询DSL语句、索引设计和数据模型,以提高搜索效率和准确性。(偏向于具体的业务怎么设计)

相关文章:

面试题-Elasticsearch集群架构和调优手段(超全面)

对于Elasticsearch(ES),我了解并有经验。在我之前的公司,我们有一个相对大型的ES集群,以下是该集群的架构和一些调优手段的概述: 1. 集群架构 集群规模:我们的ES集群由15个节点组成&#xff0c…...

python基础练习题6

1、找出10000以内能被5或6整除,但不能被两者同时整除的数(函数) def find_numbers(m,n):result []for num in range(m,n):if (num % 5 0 or num % 6 0) and not (num % 5 0 and num % 6 0):result.append(num)return resultprint(find_…...

Chrome 插件各模块使用 Fetch 进行接口请求

Chrome 插件各模块使用 Fetch 进行接口请求 常规网页可以使用 fetch() 或 XMLHttpRequest API 从远程服务器发送和接收数据,但受到同源政策的限制。 内容脚本会代表已注入内容脚本的网页源发起请求,因此内容脚本也受同源政策的约束,插件的来…...

内存可见性

内存可见性 一:内存可见性1.2: 二:解决内存可见性问题2.1 volatile关键字2.2:synchronized关键字解决内存可见性问题 一:内存可见性 public class Demo1 {public static int count 0;public static void main(String[] args) throws InterruptedException {Thread t1new Thre…...

Android room 在dao中不能使用挂起suspend 否则会报错

错误&#xff1a; Type of the parameter must be a class annotated with Entity or a collection/array of it. kotlin.coroutines.Continuation<? super kotlin.Unit> $completion); 首先大家检查一下几个点 一、kotlin-kapt 二、 是否引入了 room-ktx 我是2024年…...

【stable diffusion扩散模型】一篇文章讲透

目录 一、引言 二、Stable Diffusion的基本原理 1 扩散模型 2 Stable Diffusion模型架构 3 训练过程与算法细节 三、Stable Diffusion的应用领域 1 图像生成与艺术创作 2 图像补全与修复 3 其他领域 四、Stable Diffusion的优势与挑战 &#x1f449;优势 &#x1f…...

数据链路层之信道:数字通信的桥梁与守护者

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…...

SQL109 纠错4(组合查询,order by..)

SELECT cust_name, cust_contact, cust_email FROM Customers WHERE cust_state MI UNION SELECT cust_name, cust_contact, cust_email FROM Customers WHERE cust_state IL ORDER BY cust_name;order by子句&#xff0c;必须位于最后一条select语句之后...

Spring Boot + Vue 实现文件导入导出功能

文章目录 1、概述2、后端实现&#xff08;Spring Boot&#xff09;3、前端实现&#xff08;Vue&#xff09;4、总结 1、概述 ​ 在现代Web应用开发中&#xff0c;文件的导入导出是一个常见的需求。Spring Boot作为后端开发的强大框架&#xff0c;搭配前端框架Vue&#xff0c;可…...

vue watch 深度监听

vue2文档&#xff1a;API — Vue.js vue3文档&#xff1a;侦听器 | Vue.js watch 可以用来监听页面中的数据&#xff0c;但如果监听的源是对象或数组&#xff0c;则使用深度监听&#xff0c;强制深度遍历源&#xff0c;以便在深度变更时触发回调。 一&#xff0c;监听 <t…...

Qt源码调试步骤记录

1.源码&#xff1a; 两种方式&#xff0c;要么安装qt时选择source&#xff0c;要么从官网下载源码&#xff0c;然后在qt creator中设置路径。二选一即可。我选的第二种。 1.1.第一种&#xff0c;安装时选择source&#xff1a; 1.2.第二种&#xff0c;下载源码设置路径&#x…...

大数据面试英文自我介绍参考(万字长文)

发现有一个怪圈,如果码农年龄35+,除非非常匹配,不然在国内企业筛选可能就筛选不过。国外码农可以干到40+、50+。一些外企,对年龄35+的码农依然青睐。这些外企对英文是有要求,通常是要英文自我介绍,下面提供一些英文自我介绍参考。 参考1: Good morning/afternoon, I a…...

外包干了5天,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入杭州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…...

Docket常见的软件部署1

1 安装MySQL # 查看MySQL镜像 docker search mysql # 拉起镜像 docker pull mysql:5.7 # 创建MySQL数据映射卷&#xff0c;防止数据不丢失 mkdir -p /hmoe/tem/docker/mysql/data/ # 启动镜像 docker run -d --name mysql -e MYSQL_ROOT_PASSWORD123456 -p 3306:3306 -v /home…...

Qt源程序编译及错误问题解决

Error 5 while parsing C:/qt-everywhere-src-6.6.2/qt-build/qtdeclarative/src/qmlmodels/meta_types/qt6qmlmodels_release_metatypes.json: illegal value .json 文件为空文件0字节&#xff0c;加 “[]”&#xff0c;不要引号。可以解决这类错误。 Qt编译 Qt for Windows…...

作业练习(python)

第一题&#xff1a; cel eval(input()) fah 9 / 5 * cel 32 print("%.1f" % fah) 第二题&#xff1a; radius, length eval(input()) area radius * radius * 3.14159267 volume area * length print("%.2f" % area) print("%.2f" …...

Wireshark使用相关

1.wireshark如何查看RST包 tcp.flags.reset1 RST表示复位&#xff0c;用来异常的关闭连接&#xff0c;在TCP的设计中它是不可或缺的。发送RST包关闭连接时&#xff0c;不必等缓冲区的包都发出去&#xff08;不像上面的FIN包&#xff09;&#xff0c;直接就丢弃缓存区的包发送R…...

相机标定学习记录

相机标定是计算机视觉和机器视觉领域中的一项基本技术&#xff0c;它的主要目的是通过获取相机的内部参数&#xff08;内参&#xff09;和外部参数&#xff08;外参&#xff09;&#xff0c;以及镜头畸变参数&#xff0c;建立起现实世界中的点与相机成像平面上对应像素点之间准…...

CSS 滚动条样式修改

1、滚动条整体部分 使用 ::-webkit-scrollbar 注意&#xff1a;这个必须要加&#xff0c;不然修改的样式不生效 ::-webkit-scrollbar {width: 10px;//修改滚动条宽度 }2、滚动条中的滑块 使用 ::-webkit-scrollbar-thumb ::-webkit-scrollbar-thumb {border-radius: 8px;b…...

谈谈配置中心?

配置中心可以做集中式的服务配置管理&#xff0c;比如配置一些数据库连接的URL&#xff0c;一些共用的配置且可动态调整的参数。如果不采用集中式的管理&#xff0c;会导致修改起来特别麻烦&#xff0c;一个个的修改特别繁琐。 Nacos Config配置中心中采用的是客户端拉取数据&a…...

人工智能(pytorch)搭建模型25-基于pytorch搭建FPN特征金字塔网络的应用场景,模型结构介绍

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能(pytorch)搭建模型25-基于pytorch搭建FPN特征金字塔网络的应用场景&#xff0c;模型结构介绍。特征金字塔网络&#xff08;FPN&#xff09;是一种深度学习模型结构&#xff0c;主要应用于目标检测任务中&am…...

JRT业务开发起步

这是一段充满挑战与奋斗的旅程&#xff0c;自第一行Java代码的写下起&#xff0c;便历经重重险阻。从细微的代码行&#xff0c;逐步汇聚成实用的工具类方法&#xff1b;从工具类方法的积累&#xff0c;逐渐构建起功能强大的工具包&#xff1b;再从工具包的整合&#xff0c;最终…...

深度解析:国内主流音视频产品的核心功能与市场表现

前言 当前音视频开发领域呈现出多样化竞争态势&#xff0c;其中声网&#xff08;Agora&#xff09;、即构&#xff08;ZEGO&#xff09;等云通讯企业占据了市场的主导地位。随着技术的持续进步和用户需求的日益多样化&#xff0c;选择音视频服务提供商的标准也越来越个性化&am…...

红黑树介绍及插入操作的实现

&#x1f389;个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名乐于分享在学习道路上收获的大二在校生 &#x1f648;个人主页&#x1f389;&#xff1a;GOTXX &#x1f43c;个人WeChat&#xff1a;ILXOXVJE &#x1f43c;本文由GOTXX原创&#xff0c;首发CSDN&…...

[linux初阶][vim-gcc-gdb] TwoCharter: gcc编译器

目录 一.Linux中gcc编译器的下载与安装 二.使用gcc编译器来翻译 C语言程序 ①.编写C语言代码 ②翻译C语言代码 a.预处理 b.编译 c.汇编 d.链接 ③.执行Main 二进制可执行程序(.exe文件) 三.总结 一.Linux中gcc编译器的下载与安装 使用yum命令(相当于手机上的应用…...

单例设计模式(2)

单例设计模式&#xff08;2&#xff09; 单例模式存在的问题 单例对 OOP 特性的支持不友好 oop的特性&#xff1a;封装、继承、多态、抽象&#xff1b;以Id生成器代码为例&#xff0c;如果未来某一天&#xff0c;我们希望针对不同的业务采用不同的 ID 生成算法。比如&#x…...

boost::asio 启用 io_uring(Linux 5.10)队列支持

欲启用 boost::asio 对于 io_uring 的支持&#xff0c;这需要以下几个先决条件&#xff1b; 1、boost 1.78 及以上发行版本 Revision History - 1.78.0 (boost.org) 2、Linux kernel 5.10 及以上发行版本 3、在预定义头文件&#xff08;stdafx.h&#xff09;、或编译器预定义…...

Android 自定义坐标曲线图(二)

Android 自定义坐标曲线图_android 自定义曲线图-CSDN博客 继上一篇文章&#xff0c;点击折线图上的点&#xff0c;显示提示信息进行修改&#xff0c;之前通过回调&#xff0c;调用外部方法&#xff0c;使用popupwindow或dialog来显示&#xff0c;但是这种方法对于弹框显示的位…...

每日OJ题_子序列dp⑧_力扣446. 等差数列划分 II - 子序列

目录 力扣446. 等差数列划分 II - 子序列 解析代码 力扣446. 等差数列划分 II - 子序列 446. 等差数列划分 II - 子序列 难度 困难 给你一个整数数组 nums &#xff0c;返回 nums 中所有 等差子序列 的数目。 如果一个序列中 至少有三个元素 &#xff0c;并且任意两个相邻…...

GOPROXY 代理设置

通常报错&#xff1a; 1.http: server gave HTTP response to HTTPS client 2.timeout 解决指令&#xff1a;(会话临时性)&#xff0c;长久的可以在配置文件中配置 go env -w GOPROXYhttps://goproxy.cn,direct 长久的&#xff0c;在~/.bashrc文件中添加&#xff1a; expo…...

wap网站制作工具/如何创建一个网址

Scala集合的mutable和immutable解释概述集合API概述概述 Scala 集合类系统地区分了可变的和不可变的集合。可变集合可以在适当的地方被更新或扩展。这意味着你可以修改&#xff0c;添加&#xff0c;移除一个集合的元素。而不可变集合类&#xff0c;相比之下&#xff0c;永远不会…...

小破站下载/seo搜索优化培训

导读有时我们会在网上下载一些proe或者Creo模型&#xff0c;由于不知道这些模型具体版本&#xff0c;使用软件打开时可能会在信息栏提示“xxx不能检索”&#xff0c;这是因为Proe和Creo的低版本是无法打开高版本的。难道我们必须需要安装高版本的软件吗?我只是想欣赏一下模型而…...

北京高端网站建设系统/陕西网络营销优化公司

2-范数 欧几里得范数&#xff0c;常用计算向量长度&#xff09;&#xff0c;即向量元素绝对值的平方和再开方 参考资料 1.知乎&#xff1a;0 范数、1 范数、2 范数有什么区别&#xff1f; 2. Wikipedia&#xff1a;范数...

wordpress获取tags/百度推广客户端app下载

在很多的嵌入式的软件中&#xff0c;我们拿到代码&#xff0c;如果有文档先看看文档&#xff0c;没有文档也只能从Makefile的角度去看看软件的基本架构了。有一些大型的嵌入式软件项目的Makefile写的很复杂&#xff0c;这样在看学习Makefile的时候&#xff0c;需要一些技巧去分…...

武汉网站建站/重庆seo搜索引擎优化优与略

1、配置连接池通过IP/console进入管理控制台(如果不知道用户名和密码可以通过以下方式进入&#xff1a;右击StartWebLogic.sh快捷方式&#xff0c;选择“编辑”&#xff0c;在文本中可以找到用户名和密码)在左侧菜单中依次进入mydomain(自定义的域名称)&#xff0d;服务&#x…...

网站建设 专家/优化大师软件大全

物联网技术发展趋势是LPWAN&#xff0c;其中尤其以NB-IoT和eMTC最为代表。NB-IoT和eMTC各有优劣&#xff0c;使用场景互有不同。 低功耗可以说是物联网技术的核心&#xff0c;本着关注低功耗的方向&#xff0c;适当了解NB IoT在整个LTE中的位置&#xff0c;NB-IoT的协议&#x…...