技术■腾讯万亿级 Elasticsearch 技术解密( 二 )
二、遇到的挑战
前面我们介绍了 ES 在腾讯内部的广泛应用 , 在如此大规模、高压力、丰富使用场景的背景下 , 我们遇到了很多挑战 , 总体可以划分为两类:搜索类和时序类 。
文章图片
文章图片
首先 , 我们一起看看搜索类业务的挑战 。以电商搜索、APP 搜索、站内搜索为代表 , 这类业务非常重视可用性 , 服务 SLA 达到 4 个 9 以上 , 需要容忍单机故障、单机房网络故障等;同时要求高性能、低毛刺 , 例如 20w QPS、平响 20ms、P95 延时 100ms 。总之 , 在搜索类业务场景下 , 核心挑战点在于高可用、高性能 。
文章图片
文章图片
另一类我们称之为时序类业务挑战 , 包含日志、Metrics、APM 等场景 。相比于搜索类业务重点关注高可用、高性能 , 时序类业务会更注重成本、性能 。比如时序场景用户通常要求高写入吞吐 , 部分场景可达 1000w/sWPS;在这样写入吞吐下 , 保留 30 天的数据 , 通常可达到 PB 级的存储量 。而现实是日志、监控等场景的收益相对较低 , 很可能用户用于线上实际业务的机器数量才是 100 台 , 而监控、日志等需要 50 台 , 这对多数用户来说 , 基本是不可接受的 。所以在时序类业务中 , 主要的挑战在于存储成本、计算成本等方面 。
前面我们介绍了在搜索类、时序类业务场景下遇到的高可用、低成本、高性能等挑战 , 下面针对这些挑战 , 我们重点分享腾讯在 ES 内核方面的深入实践 。
三、ES 优化实践
文章图片
文章图片
首先 , 我们来看看高可用优化 , 我们把高可用划分为三个维度:系统健壮性:是指 ES 内核自身的健壮性 , 也是分布式系统面临的共性难题 。例如 , 在异常查询、压力过载下集群的容错能力;在高压力场景下 , 集群的可扩展性;在集群扩容、节点异常场景下 , 节点、多硬盘之间的数据均衡能力 。容灾方案:如果通过管控系统建设 , 保障机房网络故障时快速恢复服务 , 自然灾害下防止数据丢失 , 误操作后快速恢复等 。系统缺陷:这在任何系统发展过程中都会持续产生 , 比如说 Master 节点堵塞、分布式死锁、滚动重启缓慢等 。
文章图片
文章图片
针对上述问题 , 下面来介绍我们在高可用方面的解决方案:
系统健壮性方面 , 我们通过服务限流 , 容忍机器网络故障、异常查询等导致的服务不稳定 , 后面展开介绍 。通过优化集群元数据管控逻辑 , 提升集群扩展能力一个数量级 , 支持千级节点集群、百万分片 , 解决集群可扩展性问题;集群均衡方面 , 通过优化节点、多硬盘间的分片均衡 , 保证大规模集群的压力均衡 。
容灾方案方面 , 我们通过扩展 ES 的插件机制支持备份回档 , 把 ES 的数据备份回档到廉价存储 , 保证数据的可恢复;支持跨可用区容灾 , 用户可以按需部署多个可用区 , 以容忍单机房故障 。垃圾桶机制 , 保证用户在欠费、误操作等场景下 , 集群可快速恢复 。
系统缺陷方面 , 我们修复了滚动重启、Master 阻塞、分布式死锁等一系列 Bug 。其中滚动重启优化 , 可加速节点重启速度 5+倍 , 具体可参考 PR ES-46520;Master 堵塞问题 , 我们在 ES 6.x 版本和官方一起做了优化 。
推荐阅读
- 快充@三口65瓦+氮化镓技术!征拓新品:小却如此强悍
- #程序员#腾讯女程序员相亲遭对方嫌弃,晒出聊天记录感叹:太难了
- 【】直播行业打响“技术战”,酷狗3D虚拟直播脱颖而出,优势何在?
- 『腾讯科技』淘宝天猫蒋凡在阿里内网回应传闻:深表歉意,恳请公司展开调查
- 「腾讯」腾讯视频盈利难:2019年亏损30亿 盗墓题材连拍五年没水花
- 技术@全球首套规模化太阳燃料合成示范项目试车成功丨转化亮点
- 服务@云市场跨步式发展 打造ToB云市场阿里腾讯外“第三股势力”
- [技术]安芯半导体再出货一台光刻机,价值千万元!满足国内芯片企业需求
- 『技术』鹤壁:全面提升科技创新能力为建设高质量富美鹤城贡献科技力量(1)
- 技术@为楼宇安上“智慧大脑”,翠苑街道开创“一平台”数据互通模式
