Elasticsearch 开发运维实战核心 Tips

简介: Elasticsearch基础但非常重要的功能还有哪些?0,有安全比裸奔重要!1,模板template比mapping重要。2,显式映射 strict mapping比隐式mapping重要!3,别名重要!4,结合业务选择甚至自定义分词器比使用默认重要!请留言写下您的思考。https://t.zsxq.com/MrjQrfM

有20多人参与,大家把自己架构、开发、运维实战中遇到的核心问题和建议都一股脑写出来了。


我做了扩展梳理,相信对架构、开发、运维都有一定的帮助!


1、集群规划层面

注意评估节点的硬盘空间。


结合esrally等第三方工具评估集群资源的写入、检索的吞吐率等指标。


合理配置每个索引的分片数。


2、数据预处理层面

数据进 Elasticsearch 前要做清洗。


Elasticsearch 擅长的是检索和不复杂的聚合,其他活给关系型数据库或者第三方大数据开源库如:clickhouse 等。


3、数据建模层面

比起严格模式,我更喜欢动态mapping,通过字段名字的前缀映射类型,自从用了这套规则,字段冲突导致的kibana无法作报表的问题一扫而光啊,真的是不要太香了 。


是否需要打分,是否需要排序、聚合、过滤,如果不需要则(doc_values(dvm、dvd) norm(nvd、nvm))属性需要关闭等等。


模板 template 比 mapping 更灵活,推荐结合别名多使用动态模板,尤其数据量每日增量巨大的业务场景。


字段非常明确固定、且未来不会新增字段,考虑mapping创建时设置:"dynamic": "strict", 以严格控制Mapping泛滥。


结合业务选择分词器甚至自定义分词器。


4、检索层面

如果需要考虑查询速度的优化,且排序字段基本固定,则可以考虑把 indexSort 配上,查询时会提前中断。


indexSort能通过预排序有效避免全局扫描,提前中断查询,提升查询性能,对于查询时按照某列排序(注意不适合相关性排序)的场景非常适合。


查询根据业务实际考虑,建议最好把 Wildcard 模糊查询、*.*等会导致数据量大的查询做限制。


限制limit +offset,限制query_string等文本查询的长度,限制term长度,随时关注慢查询日志。es是很强大,但是取决你怎么使用,你永远不知道会怎么调你的接口…


5、硬件资源层面

5.1 磁盘层面

磁盘大小是否充足,压缩格式使用默认speed Compression? 还是 Best Compression?


5.2 内存层面

采用默认NIOFS 还是MMAP,采用MMAP哪些需要预缓存到堆外。


6、集群管理层面

记得配置延时分片 index.unassigned.node_left.delayed_timeout。


refresh、flush时间根据的实际业务需求调整。


对集群的性能监控越全面越好, 及时发现慢查询,尽可能全面的根据业务评估使用量, 并能在瓶颈期发现和升级配置。


多节点集群,合理划分节点角色,尤其要分离:主节点、数据节点、协调节点。


7、安全及灾备层面

禁用批量删除索引比默认的随意删除重要。


定期或者增量备份比无备份重要(条件允许的情况下)。


安全问题是必须的,我们是在日志清晰的时候做的核心字段加密,elk 整个技术栈都只允许内网访问,对外的服务接口也是要软 token 的。


将 ES 提供给业务研发去使用,更多的是需要考虑控制权限,降低门槛,最好是封装一层网管提供给业务研发使用,然后再去多分享培训,提高业务侧研发对ES的认知。


8、性能优化层面

关闭系统swap。


如果数据量大,尽可能使用bulk 批量操作。


(1)写入层面bulk操作,包含但不限于:bulk API 执行批量写入、更新、删除多文档操作。


(2)检索层面bulk操作,包含但不限于:Multi Get(mget), Scorll, MultiSearch。


建议根据业务需求较早的设置开启慢查询日志。


堆内存大小不要超过32GB。


使用script 脚本时,要考虑可能带来的慢、安全风险(早期版本)等负面影响。


在一定条件下,执行强制合并segment,查询速度会提升很多。


9、小结

从各个层面列举了大家实战中关心且常忽视的Tips,不求全,但求有用。


因为 Tips 涉及内容多,没有各个点展开。更多细节欢迎留言交流。


大家有实战中更好的Tips,也欢迎留言交流一下。

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
11月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
11月前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
1436 62
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
人工智能 运维 安全
基于合合信息开源智能终端工具—Chaterm的实战指南【当运维遇上AI,一场效率革命正在发生】
在云计算和多平台运维日益复杂的今天,传统命令行工具正面临前所未有的挑战。工程师不仅要记忆成百上千条操作命令,还需在不同平台之间切换终端、脚本、权限和语法,操作效率与安全性常常难以兼顾。尤其在多云环境、远程办公、跨部门协作频繁的背景下,这些“低效、碎片化、易出错”的传统运维方式,已经严重阻碍了 IT 团队的创新能力和响应速度。 而就在这时,一款由合合信息推出的新型智能终端工具——Chaterm,正在悄然颠覆这一现状。它不仅是一款跨平台终端工具,更是业内率先引入 AI Agent 能力 的“会思考”的云资源管理助手。
|
人工智能 运维 监控
运维也能“先演练后实战”?聊聊数字孪生的那些神操作
运维也能“先演练后实战”?聊聊数字孪生的那些神操作
386 0
|
人工智能 OLAP 数据处理
解锁数仓内AI流水线,AnalyticDB Ray基于多模ETL+ML提效开发与运维
AnalyticDB Ray 是AnalyticDB MySQL 推出的全托管Ray服务,基于开源 Ray 的丰富生态,经过多模态处理、具身智能、搜索推荐、金融风控等场景的锤炼,对Ray内核和服务能力进行了全栈增强。
|
SQL 运维 自然语言处理
Dataphin智能化重磅升级!编码难题一扫光,开发运维更高效!
Dataphin重磅推出三大核心智能化能力:智能代码助手提升SQL开发效率;智能运维助手实现移动化任务管理;智能分析通过自然语言生成SQL,助力数据价值释放。未来将持续开放智能ETL、安全助手等能力,助力企业构建高效、稳定的数据资产体系。
867 0
|
缓存 运维 安全
7天精通电商API:从接入到运维的完整实战手册
本文全面解析电商API接口技术,从基础概念到高阶应用,涵盖商品、订单、支付与营销等核心模块,并深入探讨性能优化、安全防护与智能化发展方向,助你掌握驱动数字商业的核心技术。
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。
|
人工智能 运维 自然语言处理
首个智能体模型实测:产品、开发、运维“全包了”
2025年,AI进入“动手”时代。智谱发布新一代大模型GLM-4.5,全球排名第三、国产第一,专为智能体设计,融合推理、编码与智能体能力,实现自主规划与执行任务。通过8个Demo展示其强大能力,涵盖网页设计、课件制作、小游戏开发等,展现其“带手的脑”特性,推动AI从实验室走向真实场景。
646 0

热门文章

最新文章