加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 点评 > 正文

分布式搜索分析引擎Elasticsearch实现亿万级搜索的秘密

发布时间:2020-01-16 18:43:30 所属栏目:点评 来源:云计算
导读:副标题#e# Elasticsearch(ES)作为开源首选的分布式搜索分析引擎,通过一套系统轻松满足用户的日志实时分析、全文检索、结构化数据分析等多种需求,大幅降低大数据时代挖掘数据价值的成本。腾讯在公司内部丰富的场景中大规模使用 ES,同时联合 Elastic 公
副标题[/!--empirenews.page--]

Elasticsearch(ES)作为开源首选的分布式搜索分析引擎,通过一套系统轻松满足用户的日志实时分析、全文检索、结构化数据分析等多种需求,大幅降低大数据时代挖掘数据价值的成本。腾讯在公司内部丰富的场景中大规模使用 ES,同时联合 Elastic 公司在腾讯云上提供内核增强版的 ES 云服务,大规模、丰富多样的的使用场景推动着腾讯对原生 ES 进行持续的高可用、高性能、低成本优化。

  一、ES 在腾讯的应用场景

分布式搜索分析引擎Elasticsearch实现亿万级搜索的秘密

【ES 在腾讯的应用场景】

最初我们使用 ES 于日志实时分析场景,典型日志如下:

运营日志,比如慢日志、异常日志,用来定位业务问题;

业务日志,比如用户的点击、访问日志,可以用来分析用户行为;

审计日志,可以用于安全分析。ES 很完美的解决了日志实时分析的需求,它具有如下特点:

Elastic 生态提供了完整的日志解决方案,任何一个开发、运维同学使用成熟组件,通过简单部署,即可搭建起一个完整的日志实时分析服务。

在 Elastic 生态中,日志从产生到可访问一般在 10s 级。相比于传统大数据解决方案的几十分钟、小时级,时效性非常高。

由于支持倒排索引、列存储等数据结构,ES 提供非常灵活的搜索分析能力。

支持交互式分析,即使在万亿级日志的情况下,ES 搜索响应时间也是秒级。

日志是互联网行业最基础、最广泛的数据形式,ES 非常完美的解决了日志实时分析场景,这也是近几年 ES 快速发展的一个重要原因。

分布式搜索分析引擎Elasticsearch实现亿万级搜索的秘密

第二类使用场景是搜索服务,典型场景包含:商品搜索,类似京东、淘宝、拼多多中的商品搜索;APP 搜索,支持应用商店里的应用搜索;站内搜索,支持论坛、在线文档等搜索功能。我们支持了大量搜索服务,它们主要有以下特点:

高性能:单个服务最大达到 10w+ QPS,平响 20ms~,P95 延时小于 100ms。

强相关:搜索体验主要取决于搜索结果是否高度匹配用户意图,需要通过正确率、召回率等指标进行评估。

高可用:搜索场景通常要求 4 个 9 的可用性,支持单机房故障容灾。任何一个电商服务,如淘宝、京东、拼多多,只要故障一个小时就可以上头条。

分布式搜索分析引擎Elasticsearch实现亿万级搜索的秘密

第三类使用场景是时序数据分析,典型的时序数据包含:Metrics,即传统的服务器监控;APM,应用性能监控;物联网数据,智能硬件、工业物联网等产生的传感器数据。这类场景腾讯很早就开始探索,在这方面积累了非常丰富的经验。这类场景具有以下特点:

高并发写入:线上单集群最大规模达到 600+节点、1000w/s 的写入吞吐。

高查询性能:要求单条曲线 或者单个时间线的查询延时在 10ms~。

多维分析:要求灵活、多维度的统计分析能力,比如我们在查看监控的时候,可以按照地域、业务模块等灵活的进行统计分析。

二、遇到的挑战

前面我们介绍了 ES 在腾讯内部的广泛应用,在如此大规模、高压力、丰富使用场景的背景下,我们遇到了很多挑战,总体可以划分为两类:搜索类和时序类。

分布式搜索分析引擎Elasticsearch实现亿万级搜索的秘密

首先,我们一起看看搜索类业务的挑战。以电商搜索、APP 搜索、站内搜索为代表,这类业务非常重视可用性,服务 SLA 达到 4 个 9 以上,需要容忍单机故障、单机房网络故障等;同时要求高性能、低毛刺,例如 20w QPS、平响 20ms、P95 延时 100ms。总之,在搜索类业务场景下,核心挑战点在于高可用、高性能。

分布式搜索分析引擎Elasticsearch实现亿万级搜索的秘密

另一类我们称之为时序类业务挑战,包含日志、Metrics、APM 等场景。相比于搜索类业务重点关注高可用、高性能,时序类业务会更注重成本、性能。比如时序场景用户通常要求高写入吞吐,部分场景可达 1000w/s

WPS;在这样写入吞吐下,保留 30 天的数据,通常可达到 PB 级的存储量。而现实是日志、监控等场景的收益相对较低,很可能用户用于线上实际业务的机器数量才是 100 台,而监控、日志等需要 50 台,这对多数用户来说,基本是不可接受的。所以在时序类业务中,主要的挑战在于存储成本、计算成本等方面。

前面我们介绍了在搜索类、时序类业务场景下遇到的高可用、低成本、高性能等挑战,下面针对这些挑战,我们重点分享腾讯在 ES 内核方面的深入实践。

  三、ES 优化实践

分布式搜索分析引擎Elasticsearch实现亿万级搜索的秘密

首先,我们来看看高可用优化,我们把高可用划分为三个维度:

系统健壮性:是指 ES 内核自身的健壮性,也是分布式系统面临的共性难题。例如,在异常查询、压力过载下集群的容错能力;在高压力场景下,集群的可扩展性;在集群扩容、节点异常场景下,节点、多硬盘之间的数据均衡能力。

容灾方案:如果通过管控系统建设,保障机房网络故障时快速恢复服务,自然灾害下防止数据丢失,误操作后快速恢复等。

分布式搜索分析引擎Elasticsearch实现亿万级搜索的秘密

系统缺陷:这在任何系统发展过程中都会持续产生,比如说 Master 节点堵塞、分布式死锁、滚动重启缓慢等。

针对上述问题,下面来介绍我们在高可用方面的解决方案:

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读