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

【ES】从ignore_throttled参数废弃看Elasticsearch冷热数据架构演进

1. 从ignore_throttled参数废弃说起最近在升级Spring Boot项目时突然在日志里看到这样一条警告[ignore_throttled] parameter is deprecated because frozen indices have been deprecated。这个报错让我意识到Elasticsearch的冷热数据管理方式正在发生重大变化。作为一个从ES 5.x版本就开始使用的老用户我决定深入探究这个变化背后的技术演进。ignore_throttled参数原本是用来控制是否查询被冻结索引frozen indices的。在早期版本中冻结索引是一种节省资源的常用手段 - 通过限制这些索引的查询速度来降低系统负载。但现在官方直接废弃了这个设计转而推荐使用冷层cold tier和冻结层frozen tier来管理不常访问的数据。这个变化看似简单实际上反映了Elasticsearch在数据分层存储架构上的重大革新。2. 为什么需要冷热数据分层2.1 传统冻结索引的局限性在7.x之前的版本中处理历史数据最常见的方式就是使用冻结索引。我曾在生产环境用这种方式管理过TB级别的日志数据 - 将超过30天的日志索引冻结起来。冻结后的索引虽然还能查询但性能会大幅下降因为ES会限制其资源使用。这种方式有几个明显的痛点查询冻结索引时即使只是少量数据也需要完全解冻整个索引资源分配是全有或全无的模式缺乏细粒度控制管理成本高需要手动冻结/解冻索引2.2 冷热架构的优势Elasticsearch从7.10版本开始引入的冷热数据分层架构彻底改变了这一局面。在新的架构下热层hot tier存放频繁访问的数据使用高性能节点温层warm tier存放近期较少访问的数据使用中等配置节点冷层cold tier存放很少访问的数据使用低成本大容量节点冻结层frozen tier存放极少查询的归档数据使用最小化资源这种分层设计最大的好处是能够根据数据访问频率动态分配资源。在实际项目中我发现这种架构可以节省40%以上的硬件成本同时还能保证热数据的查询性能。3. 如何迁移到新架构3.1 版本兼容性检查遇到ignore_throttled废弃警告时首先要确认的是组件版本。根据我的经验这个问题通常出现在以下组合Elasticsearch ≥7.14Spring Data Elasticsearch ≤4.3Spring Boot ≤2.6建议的升级路径是确认ES集群版本GET /根据官方兼容矩阵选择Spring Data Elasticsearch版本同步升级Spring Boot版本这里有个实用的命令可以快速检查版本兼容性curl -X GET localhost:92003.2 配置冷热节点迁移到冷热架构需要先配置不同类型的节点。这是我常用的节点配置模板# hot节点配置 node.roles: [ data_hot ] # cold节点配置 node.roles: [ data_cold ] # frozen节点配置 node.roles: [ data_frozen ]在实际部署时建议至少配置3个热节点高性能CPUSSD2个温节点中等CPUSSD/HDD混合1个冷节点大容量HDD1个冻结节点最大容量HDD3.3 索引生命周期管理新的架构需要配合ILMIndex Lifecycle Management使用。这是我为日志系统设计的典型生命周期策略PUT _ilm/policy/logs_policy { policy: { phases: { hot: { actions: { rollover: { max_size: 50GB, max_age: 1d } } }, warm: { min_age: 7d, actions: { allocate: { require: { data: warm } } } }, cold: { min_age: 30d, actions: { allocate: { require: { data: cold } } } }, delete: { min_age: 365d, actions: { delete: {} } } } } }4. Spring Data Elasticsearch的适配4.1 客户端升级实战回到最初的问题解决ignore_throttled废弃警告的关键是升级客户端版本。根据官方兼容矩阵ES版本Spring Data ES版本Spring Boot版本7.17.04.4.x2.7.x升级步骤很简单修改pom.xmldependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-elasticsearch/artifactId version2.7.0/version /dependency更新application.propertiesspring.elasticsearch.rest.urishttp://localhost:9200 spring.elasticsearch.rest.connection-timeout1s spring.elasticsearch.rest.read-timeout30s4.2 查询适配建议虽然新版本已经处理了ignore_throttled的问题但在代码层面还是建议做一些适配Repository public interface LogRepository extends ElasticsearchRepositoryLog, String { // 旧方式不推荐 Query({\match_all\: {}}) PageLog findAll(Pageable pageable); // 新方式使用search_after分页 Query({\match_all\: {}}) SearchHitsLog searchAll(Pageable pageable); }对于冷数据的查询建议添加明确的tier偏好SearchRequest request new SearchRequest(logs-*); request.preference(_tier_preference:data_cold,data_frozen);5. 性能优化实践5.1 查询冷数据的技巧在冷层和冻结层查询时有几个实用技巧可以提升性能尽量使用docvalue_fields而不是_source对冻结层数据使用searchable_snapshot特性设置合理的查询超时这是我常用的冻结层查询模板GET /frozen-logs-*/_search { query: { match: { message: error } }, docvalue_fields: [timestamp, level], sort: [ { timestamp: { order: desc } } ], timeout: 30s }5.2 监控与调优冷热架构需要特别的监控策略。建议重点关注这些指标热节点的CPU使用率应70%冷节点的磁盘IOPS应50%冻结节点的内存使用应30%可以通过_cat API快速获取这些信息GET _cat/nodes?vhname,node.role,heap.percent,cpu,load_1m,disk.used_percent6. 常见问题解决在实际迁移过程中我遇到过几个典型问题节点角色配置错误忘记设置node.roles导致数据无法正确分配解决方案使用GET _cat/nodeattrs?v验证节点属性ILM策略不生效索引卡在hot阶段不滚动检查点GET _ilm/explain/logs-*冻结层查询超时查询大容量冻结索引时超时优化方案增加timeout: 60s参数版本兼容性问题Spring Data方法在新版本中废弃应对措施使用Deprecated注解定位问题方法7. 最佳实践总结经过多个项目的实践验证我总结了这些经验对于新项目直接从7.10版本开始使用冷热架构热节点数量应为数据写入吞吐量的1.5倍冷节点使用大容量HDD时建议配置多个数据路径冻结层数据最好配合快照功能使用定期使用_ilm/explain检查索引生命周期状态一个典型的集群配置示例# hot节点3台 node.roles: [ data_hot, ingest, master ] path.data: [/data1/es/hot] # cold节点2台 node.roles: [ data_cold ] path.data: [/data1/es/cold, /data2/es/cold] # frozen节点1台 node.roles: [ data_frozen ] path.data: [/data1/es/frozen, /data2/es/frozen, /data3/es/frozen]迁移到冷热分层架构后最大的感受是运维复杂度显著降低。以前需要手动管理的冻结/解冻操作现在完全自动化硬件成本也得到优化。对于还在使用旧版冻结索引的项目建议尽快规划迁移毕竟技术栈的及时更新是保证系统长期稳定运行的关键。

相关文章:

【ES】从ignore_throttled参数废弃看Elasticsearch冷热数据架构演进

1. 从ignore_throttled参数废弃说起 最近在升级Spring Boot项目时,突然在日志里看到这样一条警告:"[ignore_throttled] parameter is deprecated because frozen indices have been deprecated"。这个报错让我意识到,Elasticsearch…...

Bidili Generator实战教程:用CSV批量生成100张不同风格产品主图

Bidili Generator实战教程:用CSV批量生成100张不同风格产品主图 你是不是也遇到过这样的烦恼?公司要上新一批产品,需要为每个产品制作不同风格的主图,比如清新风、科技感、复古调。找设计师一张张做,成本高、周期长&a…...

图片旋转判断模型联邦学习:多机构协作提升泛化但不共享原始图

图片旋转判断模型联邦学习:多机构协作提升泛化但不共享原始图 你有没有遇到过这样的烦恼?从不同设备、不同渠道收集来的图片,有的头朝上,有的却莫名其妙地旋转了90度甚至180度。手动一张张去调整,费时费力&#xff1b…...

Opik生产环境部署指南:K8s+Docker轻松应对4000万+日追踪记录

Opik生产环境高可用部署实战:KubernetesDocker架构设计精要 当企业级LLM应用日均处理量突破4000万条追踪记录时,系统架构面临的挑战已远非单机部署所能应对。本文将深入剖析基于Kubernetes和Docker的Opik生产环境部署方案,分享我们在实际运维…...

LingBot-Depth-ViT-L14在智慧物流中应用:AGV避障深度补全降低LiDAR成本50%

LingBot-Depth-ViT-L14在智慧物流中应用:AGV避障深度补全降低LiDAR成本50% 1. 引言:AGV避障的成本困境与破局思路 如果你在工厂或仓库里见过那些跑来跑去的自动搬运小车(AGV),可能会觉得它们很酷。但你知道吗&#x…...

ArcToolbox实战:用‘点集转线’和‘要素转面’工具,把离散坐标连成区域面

ArcGIS高级技巧:从离散坐标到区域面的自动化构建 在空间数据分析领域,将离散的点数据转化为连续的线或面要素是常见却关键的操作。无论是气象站点的等值线绘制,还是巡检路线的区域划分,这种转换都能让原始数据"活起来"&…...

DAMO-YOLO性能实测:批量100张图平均吞吐达92 FPS(RTX 4090)

DAMO-YOLO性能实测:批量100张图平均吞吐达92 FPS(RTX 4090) 如果你正在寻找一个又快又准的目标检测工具,并且对界面颜值还有点要求,那么今天聊的这个DAMO-YOLO智能视觉探测系统,可能会让你眼前一亮。它不只…...

新手必看!PHI-3 PIXEL QUEST保姆级教程:一键部署像素风AI对话平台

新手必看!PHI-3 PIXEL QUEST保姆级教程:一键部署像素风AI对话平台 1. 环境准备与快速部署 1.1 系统要求 操作系统:支持Windows 10/11、macOS 10.15、主流Linux发行版硬件配置: 最低:8GB内存 4GB显存(NV…...

Janus-Pro-7B保姆级教程:从镜像拉取到OCR+文生图一键运行

Janus-Pro-7B保姆级教程:从镜像拉取到OCR文生图一键运行 1. 前言:为什么选择Janus-Pro-7B? 如果你正在寻找一个既能看懂图片又能生成图片的AI模型,Janus-Pro-7B绝对值得一试。这个模型最大的特点就是"多才多艺"——它…...

vLLM-v0.17.1惊艳效果:FlashInfer集成后Attention计算提速4.2倍

vLLM-v0.17.1惊艳效果:FlashInfer集成后Attention计算提速4.2倍 1. vLLM框架简介 vLLM是一个专为大型语言模型(LLM)设计的高性能推理和服务库,以其出色的速度和易用性著称。这个项目最初由加州大学伯克利分校的天空计算实验室(Sky Computing Lab)开发&…...

CLIP ViT-H/14:让AI同时理解图像与文字的多模态革命

CLIP ViT-H/14:让AI同时理解图像与文字的多模态革命 【免费下载链接】CLIP-ViT-H-14-laion2B-s32B-b79K 项目地址: https://ai.gitcode.com/hf_mirrors/laion/CLIP-ViT-H-14-laion2B-s32B-b79K 概念解析:当AI同时看懂图像和文字,会发…...

EVA-02赋能AIGC内容创作:自动化生成营销文案与剧本

EVA-02赋能AIGC内容创作:自动化生成营销文案与剧本 最近在内容创作圈子里,EVA-02这个名字被讨论得越来越多。它不是一个新出的动漫角色,而是一个在AIGC领域表现相当抢眼的文本生成模型。我花了一些时间深度体验,想和大家聊聊&…...

Wan2.2-I2V-A14B效果对比:A14B在复杂prompt下的语义理解准确率提升

Wan2.2-I2V-A14B效果对比:A14B在复杂prompt下的语义理解准确率提升 1. 引言:新一代文生视频模型的突破 在文生视频技术快速发展的今天,Wan2.2-I2V-A14B模型带来了显著的语义理解能力提升。这个专为RTX 4090D 24GB显存优化的私有部署镜像&am…...

DCT-Net模型在广告设计中的应用:创意卡通形象生成

DCT-Net模型在广告设计中的应用:创意卡通形象生成 1. 引言 广告设计行业正面临着一个普遍痛点:品牌需要大量个性化、吸引眼球的卡通形象来增强广告吸引力,但传统设计流程耗时耗力,成本高昂。一个中等规模的广告公司,…...

Intel RealSense SDK 架构解析与三维视觉开发实战

Intel RealSense SDK 架构解析与三维视觉开发实战 【免费下载链接】librealsense Intel RealSense™ SDK 项目地址: https://gitcode.com/GitHub_Trending/li/librealsense Intel RealSense SDK 作为业界领先的深度感知开发框架,为开发者提供了从硬件驱动到高…...

解锁A站视频永久保存新姿势:零基础上手AcFunDown批量下载全攻略

解锁A站视频永久保存新姿势:零基础上手AcFunDown批量下载全攻略 【免费下载链接】AcFunDown 包含PC端UI界面的A站 视频下载器。支持收藏夹、UP主视频批量下载 😳仅供交流学习使用喔 项目地址: https://gitcode.com/gh_mirrors/ac/AcFunDown 你是否…...

Clawdbot部署教程:Qwen3:32B网关与Prometheus+Grafana监控体系集成

Clawdbot部署教程:Qwen3:32B网关与PrometheusGrafana监控体系集成 1. 引言:为什么需要AI代理网关与监控体系 当你开始构建AI应用时,可能会遇到这样的问题:不同的AI模型需要不同的调用方式,监控和日志分散在各个地方&…...

C语言--C语言的常见概念

1.C语言是什么C语⾔就是众多计算机语⾔中的⼀种,是人与计算机交流的语言.2.一个最基本的C语言程序#include <stdio.h> int main() {printf("hello\n"); return 0;}3.main函数(主函数)特点:1.不管程序有多少行的代码,都是从main函数开始执行2.main函数有且只有一…...

Sqoop分区表数据导入完全指南:原理、参数与分区策略

Sqoop分区表数据导入完全指南&#xff1a;原理、参数与分区策略引言1. 分区导入的核心概念1.1 什么是分区导入&#xff1f;1.2 分区导入的两种模式2. 静态分区导入&#xff1a;使用Sqoop直接导入到指定分区2.1 核心参数2.2 基本命令语法2.3 完整实战示例3. 静态分区的局限性3.1…...

Python+PySpark+Hadoop酒店推荐系统 酒店知识图谱 酒店数据分析推荐系统 大数据毕业设计 Hadoop 可视化 协同过滤推荐算法

1、项目介绍 技术栈&#xff1a; Spark大数据、虚拟机、Hive、Hadoop、Python语言、Django框架、Echarts可视化、vue框架、HTML、selenium爬虫技术、锦江酒店网站数据、协同过滤推荐算法基于Spark和Hive的酒店数据分析与推荐系统本项目基于Spark和Hive的大数据处理平台&#xf…...

${__RandomFromMultipleVars(rand_cat6,)}随机取值函数的使用

1、核心 从多个指定的变量&#xff08;或单个变量的多个值&#xff09;中随机抽取一个值 2、应用场景 ${__RandomFromMultipleVars(变量名1,变量名2,变量名3,...,输出变量名)} 结合之前的场景举例&#xff1a; 场景 1&#xff1a;若你在 CSV文件 中定义了 random_cat 变量…...

Samba共享避坑指南:从mount error(13)到成功挂载的完整记录

Samba共享避坑实战&#xff1a;从报错到稳定挂载的深度解析 1. 问题背景与典型场景 最近在搭建本地开发环境时&#xff0c;我遇到了一个看似简单却充满陷阱的任务——在CentOS7系统上挂载Samba共享目录。本以为几分钟就能搞定的事情&#xff0c;却接连遭遇了Permission denied、…...

hadoop+spark+hive空气质量预测系统 空气质量数据分析与预测系统 Hadoop 爬虫 机器学习 线性回归预测算法

1、项目介绍 技术栈&#xff1a; Python语言、Django框架、MySQL数据库、Echarts可视化 requests爬虫技术、HTML、天气后报网站数据 机器学习 —线性回归模型 大数据技术&#xff08;Hadoop、Hive、Spark&#xff09;机器学习—线性回归模型 &#xff0c;用于根据空气质量的四个…...

哈希的本质:用指纹代替全貌,以效率驾驭复杂

在现代软件系统中&#xff0c;哈希&#xff08;Hash&#xff09;无处不在。无论是 Java 中的 HashMap、数据库中的索引去重&#xff0c;还是分布式系统中的数据分片&#xff0c;哈希都扮演着关键角色。表面上看&#xff0c;这些应用场景各不相同&#xff0c;但深入分析会发现&a…...

RuoYi-Vue-Plus:企业级开发框架的架构突破与效能革命

RuoYi-Vue-Plus&#xff1a;企业级开发框架的架构突破与效能革命 【免费下载链接】RuoYi-Vue-Plus 项目地址: https://gitcode.com/GitHub_Trending/ru/RuoYi-Vue-Plus 技术价值&#xff1a;重新定义企业级开发标准 企业级应用开发面临着模块化耦合、性能瓶颈、安全防…...

字符串读取器、字符串写入器·学习笔记

“嗨&#xff0c;阿米戈&#xff01;” “嗨&#xff0c;艾莉&#xff01;” “今天我想给大家介绍一下StringReader和StringWriter类。原则上对你来说不会有太多新的东西&#xff0c;但有时这些类非常有用。但是&#xff0c;至少&#xff0c;我想让你知道他们存在。” “这…...

Apollo速度规划实战:如何用ST Graph和DP算法解决城市道路避障难题

Apollo速度规划实战&#xff1a;ST Graph与DP算法在城市道路避障中的深度应用 1. 自动驾驶速度规划的核心挑战 城市道路环境对自动驾驶系统提出了三大核心挑战&#xff1a;动态障碍物的不可预测性、复杂路网的多变性以及乘客对舒适性的严苛要求。传统基于规则的速度控制方法在这…...

【Rust 语言编程知识与应用:异步编程详解】

文章目录一、async/await 关键字二、Future trait三、Task Context 与 Waker四、async/await 内部原理&#xff08;解糖&#xff09;五、Pin 类型与自引用问题六、Unpin trait本章小结 进阶练习摘要&#xff1a;Rust 异步编程以 async/await 为语法糖&#xff0c;底层统一抽象…...

3个步骤掌握SimAI:分布式AI系统性能优化指南

3个步骤掌握SimAI&#xff1a;分布式AI系统性能优化指南 【免费下载链接】SimAI 项目地址: https://gitcode.com/gh_mirrors/si/SimAI 如何解决大规模AI训练的性能瓶颈&#xff1f;如何在系统部署前精准预测推理延迟&#xff1f;SimAI作为专业的分布式AI模拟框架&#…...

Qt 事件循环与事件过滤器讲解【详细】

Qt 事件循环的核心机制Qt 的事件循环由 QEventLoop 类实现&#xff0c;它是 Qt 应用程序的"心脏"。每个 Qt 应用程序至少有一个事件循环&#xff0c;通常由 QCoreApplication::exec() 启动。事件循环不断检查事件队列&#xff0c;处理各种事件如用户输入、定时器、网…...