Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯健康码16亿亮码背后的Elasticsearch系统调优实践

腾讯健康码16亿亮码背后的Elasticsearch系统调优实践

原创
作者头像
腾讯云大数据
发布于 2020-04-09 13:43:06
发布于 2020-04-09 13:43:06
2.7K0
举报

Elasticsearch(以下简称ES)是近年来炙手可热的开源分布式搜索分析引擎,通过简单部署,就可以轻松实现日志实时分析、全文检索、结构化数据分析等多重诉求,并大幅降低挖掘数据价值的成本。本文即将介绍腾讯云 Elasticsearch Service(以下简称腾讯云ES)在“腾讯防疫健康码”应用落地过程中,遇到的挑战、优化思路、优化成果,希望能为开发者们提供参考。

2月9日,深圳成为全国首个推出“健康码”的城市。随后,防疫健康信息码在全国遍地开花:目前,腾讯防疫健康码已落地北京、广东、四川、云南、上海等20个省级行政区,覆盖300多个市县。累计亮码超过16亿人次,覆盖超过9亿人口,累计访问量破60亿。 健康码的架构师和开发者,如何快速应对万亿级数据访问挑战?如何高效地支持系统的快速迭代开发?,本文将为大家一一揭晓。

选型Elasticsearch及技术考量

防疫健康码涉及的应用场景包括社区互扫,卡口通行,居家隔离等。因此,在技术选型时,需要考虑:

  • 支持常见的如通行时间,车辆信息等这样的结构化信息查询
  • 支持存储街道/社区/小区名这样的长文本信息
  • 支持快速调整增删字段,以应对疫情防控需要的调整。
  • 支持关键字的搜索、海量数据的聚合分析以及地理位置区域计算

数据存储选型过程中,比对一些主流产品:

传统的关系数据库MySQL 与 腾讯云ES:传统的关系数据库MySQL,在事务型应用及多业务多表关联查询方面表现出色,但是面对复杂繁多的数据类型,特别是文本关键字搜索能力时显得捉襟见肘;腾讯云ES基于lucene查询引擎构建,通过倒排索引结构,可以通过搜索关键字快速找到所需记录。即使数据规模高达万亿级,查询响应时间依然在毫秒级。相比于使用传统关系型数据库的like命令进行匹配查找,搜索查询效率提升近百倍。

倒排索引结构
倒排索引结构

MongoDB与腾讯云ES:比较热门的NoSQL类产品MongoDB,虽和ES一样,能支持多样化的数据类型,且可以根据业务需要随时增删字段且不影响业务正常的查询写入,但是缺少文本关键字的检索能力。相比于ES来说,它还缺少海量数据的分析聚合能力及图形化的UI组件;腾讯云ES通过doc_value列存结构及聚合框架,支持包括按关键字分桶、时间分桶、距离分桶、求平均值、求和、求地理位置边界等,多达60种聚合算子。

腾讯云ES的图形化UI组件:配合kibana组件的UI能力,腾讯云ES可以用图形化的方式分析海量数据。同时,通过配置图形报表等形式,简化运营分析需求的开发复杂度。这种ES的数据分析能力,最终能使防疫相关的部门及人员,对疫情防控情况了如指掌。

腾讯云ES简单易用:在海量数据的存储方面,有很多大数据产品,如hive数仓、Hbase等,且具备一定的数据分析能力,但是相比于ES,它们的整个技术栈及架构比较重,需要维护的开源组件繁多,通常需要一支专门的运维团队进行集群日常维护。对于开发人员来说,开发方法及接口较为复杂,对于初次接触大数据平台的开发者来说需要学习相当多的基础知识后才能开始上手。 腾讯云ES使用Restful风格的API,在上手调试方面要简单很多,且提供了10+个的官方SDK及20+的社区SDK,基本覆盖了市面上所有的主流开发语言。社区生态十分活跃,文档齐全,生态组件丰富。通过SDK及生态组件的整合,减少了大量的编码工作,极大的加快了开发的流程,可以高效的应对紧急业务开发上线的需求。

业务数据极速增长,如何快速扩容

1个月左右的时间,腾讯防疫健康码就覆盖了9亿用户,累计亮码16亿次。如何应对业务急速的数据查询增长,是对数据存储系统的极大挑战。

分布式架构:腾讯云ES采用分布式架构,索引数据通过分区算法,分割为多个数据分片(shard),平均的分布在集群的多个节点上。通过节点和数据分片的能力,可以线性的扩展索引数据写入查询的吞吐,这个是传统的单实例数据库所不具备的。

腾讯云ES集群配置灵活、快速、简单:开发之初,很难预测健康码系统内部的数据的最终量级,因此希望选用的技术可以灵活增加存储空间。

在用户自建的集群上,如果需要节点配置升级,通常需要采购插拔新的存储设备,或者将新的节点加入到集群中,等待数据从老的节点上进行迁移。这个过程通常会持续小时到天之久,通常由集群的数据规模所决定。 而腾讯云ES构建于基础IaaS层之上,使用CVM及CBS云硬盘,具有一定的存储计算分离能力。存储空间的动态扩展,对于ES节点来说完全是透明的,无感知的。对于腾讯防疫健康码这样量级的数据规模,一次存储空间的扩展操作从过去的小时或天的级别降低到了秒级,且所有的集群变更操作都可以在腾讯云控制台上进行,极大的降低了集群配置变更的运维复杂度,把后台业务人员从繁重的运维工作中解脱出来。

腾讯云ES服务高可用技术架构

疫情就是军情,任何环节都不容有失。这需要存储系统7*24小时不间断提供稳定服务。

腾讯云ES支持多可用区集群容灾功能
腾讯云ES支持多可用区集群容灾功能

腾讯云ES服务支持多可用区容灾:当一个可用区因为机房电力、网络等故障的原因导致不可用时,另外一个可用区的节点仍然能稳定、不间断的提供服务,保障客户业务的可靠性。 这也是基于ES的分布式原理,当用户选择使用支持多可用区容灾的腾讯云ES集群后,系统会为用户在多个可用区部署节点,且节点会平均部署到各个可用区机房中。这是因为索引数据可以进行分片,且设置副本。根据ES的分片分配原理,所有的分片及副本会平均分布在所有的节点之上。这就保证了,如果设置的副本数和可用区数目一致,当有一个节点乃至一个可用区机房不可用,剩余节点中的分片仍是一份完整的数据,且主从分片可以自动切换,集群仍然可以持续提供写入查询服务。 保障海量查询时的服务可用性:防疫工作机构及人员需要每天及时掌握疫情的防控情况,不定时地对数据进行汇总分析查询。然而,在全国海量的防疫数据场景下,集群很容易由于不严谨的聚合分析语句导致大量的数据在节点内存中进行分桶,排序等计算,从而使节点发生OOM的问题,造成节点乃至整个集群的雪崩。 为了防止此类情况发生导致的集群不可用,腾讯云ES在存储内核上开发了基于实际内存的熔断限流机制。当集群发现部分节点的JVM使用率超过设定的熔断阀值,会进行服务降级,梯度的拦截部分查询的请求,直至JVM使用率超过95%会最终熔断,阻止所有的查询请求。这个熔断的请求拦截机制会覆盖Rest层及Transport层,通过将熔断提前至Rest层,可以尽早的将请求进行拦截,降低集群在熔断状态下的查询压力。通过这些措施,保证了健康码小程序海量查询下的服务可用性及查询性能。

数据安全,万无一失

担心数据泄露?不存在的。健康码系统使用了腾讯云ES在安全方面的最高级别优化,包括支持配置内外网访问黑白名单,支持集群权限认证功能。,极大地提高了数据安全性。并且,不同用户集群之间通过VPC进行网络隔离,杜绝了潜在的黑客入侵的风险。

腾讯云ES支持基于COS的增量数据备份用户可以通过ES原生的索引生命周期管理功能,定时将增量的备份底层数据文件放到到腾讯云对象存储COS中。需要时,可以随时将数据备份恢复至任意的集群,保证了数据的安全可靠性。

结语

腾讯防疫健康码是人员通行的重要凭证,也是疫情防控查验的可靠依据。作为服务用户最多的健康码,它的普及与腾讯云ES在数据搜索查询、高并发、弹性扩展以及安全领域的技术能力密切相关。

这还不够,未来,腾讯云ES仍将不断迭代,针对用户需求,不推打磨技术和产品,持续输出稳定可靠的Elasticsearch服务。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
腾讯健康码 16 亿亮码背后的 Elasticsearch 系统调优实践
Elasticsearch(以下简称 ES)是近年来炙手可热的开源分布式搜索分析引擎,通过简单部署,就可以轻松实现日志实时分析、全文检索、结构化数据分析等多重诉求,并将挖掘数据价值的成本大幅降低。 之前分享过一篇相关文章: 腾讯万亿级 Elasticsearch 技术解密 本文将深入介绍腾讯云  Elasticsearch Service(以下简称腾讯云 ES)在“防疫健康码”应用落地过程中,遇到的挑战、优化思路、优化成果,希望能为开发者们提供参考。 2 月 9 日,腾讯联合各方推出“防疫健康码”,民
腾讯技术工程官方号
2020/03/19
2K0
腾讯终于把云原生改造说明白了
今年 9 月,一家云原生数据仓库厂商上市,上市当天市值即破 700 亿美元,成为软件史上最大 IPO。更令人惊讶的是,从不投资上市公司的巴菲特,破例以 IPO 价购买价值 2.5 亿美元的股票,还从现股东处额外购买 404 万股原始股。
深度学习与Python
2021/01/06
1.8K0
腾讯Elasticsearch海量规模背后的内核优化剖析
Elasticsearch 在腾讯内部广泛应用于日志实时分析、结构化数据分析、全文检索等场景,目前单集群规模达到千级节点、万亿级吞吐,同时腾讯联合 Elastic 公司在腾讯云上提供了内核增强版 ES 云服务。海量规模、丰富的应用场景推动着腾讯对原生 ES 进行持续的高可用、高性能、低成本等全方位优化。本次分享主要剖析腾讯对 Elasticsearch 海量规模下的内核优化与实践,希望能和广大 ES 爱好者共同探讨推动 ES 技术的发展。
腾讯云大数据
2021/01/07
7580
腾讯Elasticsearch海量规模背后的内核优化剖析
腾讯Elasticsearch海量规模背后的内核优化剖析
Elasticsearch 在腾讯内部广泛应用于日志实时分析、结构化数据分析、全文检索等场景,目前单集群规模达到千级节点、万亿级吞吐,同时腾讯联合 Elastic 公司在腾讯云上提供了内核增强版 ES 云服务。海量规模、丰富的应用场景推动着腾讯对原生 ES 进行持续的高可用、高性能、低成本等全方位优化。本次分享主要剖析腾讯对 Elasticsearch 海量规模下的内核优化与实践,希望能和广大 ES 爱好者共同探讨推动 ES 技术的发展。
黄华
2020/05/09
2.7K4
腾讯Elasticsearch海量规模背后的内核优化剖析
海量挑战:腾讯云ES可用性及性能优化实践
腾讯会议于2019年12月底上线,两个月内日活突破1000万,被广泛应用于疫情防控会议、远程办公、师生远程授课等场景,为疫情期间的复工复产提供了重要的远程沟通工具。极速增长的会议需求,让腾讯会议服务质量分析系统经受着巨大的考验。
腾讯云开发者
2020/08/05
5.1K1
海量挑战:腾讯云ES可用性及性能优化实践
【腾讯云ES】让你的ES查询性能起飞:Elasticsearch 搜索场景优化攻略“一网打尽”
Elasticsearch是一个基于Lucene库的开源搜索引擎,简称ES。腾讯联合 Elastic 公司在腾讯云上提供了内核增强版 ES 云服务,目前在腾讯内外部广泛应用于日志实时分析、结构化数据分析、全文检索等场景。海量规模、丰富的应用场景不断推动着腾讯云ES团队对原生ES进行持续的高可用、高性能、低成本等全方位的优化。 本文旨在介绍腾讯云ES 在优化查询性能之路上的探索历程,是对大量内外部客户不断优化实践的一个阶段性总结。本文会先从ES基本原理入手,在此基础上,从内核角度引导大家如何才能充分“压榨” ES 的查询性能。
boice 国航
2022/11/25
13K3
服务质量分析:腾讯会议&腾讯云Elasticsearch玩出了怎样的新操作?
从1月29日起,为了应对疫情下远程办公的需求,腾讯会议每天都在进行资源扩容,日均扩容云主机接近1.5万台,8天总共扩容超过10万台云主机,共涉及超百万核的计算资源投入。
腾讯云开发者
2020/07/23
2.3K0
You know, for search--带你认识Elasticsearch
Elasticsearch作为当前流行分布式的搜索引擎,被广泛应用于日志检索,指标采集,APM,安全分析等领域。本文将对Elastic Stack的发展历程,基本原理,产品生态,主要功能和应用场景进行总结,以帮助大家对Elastic生态的前世今生能有一个清晰的了解。
michelmu
2019/11/24
3.2K0
You know, for search--带你认识Elasticsearch
Elasticsearch 优化锦囊
本文描述问题及解决方法适用于 腾讯云 Elasticsearch Service(ES)。
岳涛
2023/11/06
1.4K1
Elasticsearch 优化锦囊
大数据ELK Stack(一):Elasticsearch 简介
Elasticsearch:官方分布式搜索和分析引擎 | Elastic在 RESTful 风格的分布式免费开源搜索和分析引擎开源中,Elasticsearch 处于领先地位,速度快,可实现水平可扩展性和可靠性,并能让您轻松进行管理。免费启用。
zjiekou
2022/09/17
7080
大数据ELK Stack(一):Elasticsearch 简介
服务质量分析:腾讯会议&腾讯云Elasticsearch玩出了怎样的新操作?
腾讯会议于2019年12月底上线,两个月内日活突破1000万,被广泛应用于疫情防控会议、远程办公、师生远程授课等场景,为疫情期间的复工复产提供了重要的远程沟通工具。
腾讯云大数据
2020/07/21
3.6K0
服务质量分析:腾讯会议&腾讯云Elasticsearch玩出了怎样的新操作?
深度解析ElasticSearch:构建高效搜索与分析的基石
在数据爆炸的时代,如何快速、准确地从海量数据中检索出有价值的信息成为了企业面临的重要挑战。ElasticSearch,作为一款基于Lucene的开源分布式搜索和分析引擎,凭借其强大的实时搜索、分析和扩展能力,成为了众多企业的首选。本文将深入解析ElasticSearch的核心原理、架构设计及优化实践,帮助读者全面理解这一强大的工具。
小马哥学JAVA
2024/09/19
5440
Elasticsearch基础(一):Elasticsearch简介
开源Elasticsearch是一个基于Lucene的实时分布式的搜索与分析引擎,是遵从Apache开源条款的一款开源产品,是当前主流的企业级搜索引擎。作为一款基于RESTful API的分布式服务,Elasticsearch可以快速地、近乎于准实时地存储、查询和分析超大数据集,通常被用来作为构建复杂查询特性和需求强大应用的基础引擎或技术。
Lansonli
2024/10/05
5.5K1
Elasticsearch基础(一):Elasticsearch简介
48亿+,健康守护者的故事
一年前,中国还笼罩在疫情的阴影之下。 全国各地相继沦陷,感染人数与日俱增。面对未知的病毒,骤然间,举国禁足闭户,生产暂时停摆。 北京,中国的首都。 由于是政治经济交通枢纽,随着各种人员的往来出入,初期疫情逐渐蔓延,有些社区防疫措施也不尽完善,出入证、登记表、核酸检测,每次进出都要花时间登记,填写,费时费力。 同时,复工复产又成了另一个亟需解决的任务,被逐渐提上日程。 如何才能在有效控制疫情的情况下,尽快让这座沉寂的城市焕发生机,安全有序地复工复产呢? “北京健康宝”诞生了。 北京健康宝”是一个方便个人查
腾讯云数据库 TencentDB
2021/03/08
7720
干货满满丨万字超全 ElasticSearch 监控指南
导语:本文详细介绍了 ElasticSearch 如搜索性能指标、索引性能指标、内存使用和垃圾回收指标等六类监控关键指标、集群和索引两类大盘配置示例,以及 ES 在查询性能差、索引性能差的两种典型问题场景下详细的原因、排查方式和解决方案,同时也介绍了如何通过 Prometheus 监控搭建可靠的监控系统,详尽全面,推荐给大家,也欢迎各位一起交流。
腾讯云可观测平台
2024/03/15
2.2K0
干货满满丨万字超全 ElasticSearch 监控指南
大厂案例 - 腾讯万亿级 Elasticsearch 架构实践
Elasticsearch(ES)作为首选的开源分布式搜索分析引擎,通过一套系统轻松满足用户的日志实时分析、全文检索、时序数据分析等多种需求,大幅降低大数据时代发掘数据价值的成本。
小小工匠
2023/07/28
2K0
大厂案例 - 腾讯万亿级 Elasticsearch 架构实践
腾讯云Elasticsearch
众所周知,腾讯云Elasticsearch(简称ES)是一款分布式搜索引擎,可以帮助开发者构建高性能、可伸缩的搜索应用,同样它是基于ES开发的一款托管式搜索引擎服务,具有全托管式部署、高可用性、自动化运维等特点。
汐语
2023/02/23
19.1K0
腾讯云Elasticsearch
【ES三周年】elasticsearch 认知
传统的关系数据库(MySQL、Oracle、和Access等)主导了20世纪的数据存储模式,但当数据量达到太字节级,甚至拍字节级时,关系型数据库表现出了难以解决的瓶颈问题。为了解决海量数据存储和分布式计算问题,Google Tab 提出了Map/Reduce 和Google File System(GFS)解决方案,Hadoop作为其中一个优秀的实现框架迅速得到了业界的认可和广泛应用。但Hadoop的存储模式决定了其并不支持对数据的实时检索和计算。还有其他的替代方案吗?为何不尝试Elasticsearch 的分布时存储功能?
张同学tty
2023/04/09
1.4K0
【ES三周年】elasticsearch 认知
elasticsearch实战应用理论实践!2W字带你全部了解elasticsearch
Elasticsearch,这一基于Lucene构建的开源搜索引擎,以其强大的全文搜索和实时分析能力,在数据处理领域中独树一帜。作为一款分布式搜索和分析引擎,它不仅能应对大规模的数据集,还提供了灵活且可扩展的解决方案,以满足现代数据处理的各种需求。
小白的大数据之旅
2024/11/20
4150
elasticsearch实战应用理论实践!2W字带你全部了解elasticsearch
10分钟快速入门海量数据搜索分析引擎 Elasticsearch
随着移动互联网、物联网、云计算等信息技术蓬勃发展,数据量呈爆炸式增长。如今我们可以轻易得从海量数据里找到想要的信息,其中离不开搜索引擎技术的帮助。特别是其中的索引、检索和排序机制,我们无需深入了解背后复杂的信息检索原理,即可实现基本的全文检索功能。数据量达到十亿,百亿规模仍然可以秒级返回检索结果。对于系统容灾、数据安全性、可扩展性、可维护性等我们关注的实际问题,在开源搜索引擎领域排名第一的Elasticsearch里均能得到有效解决。
石松
2020/08/24
1.8K0
10分钟快速入门海量数据搜索分析引擎 Elasticsearch
推荐阅读
相关推荐
腾讯健康码 16 亿亮码背后的 Elasticsearch 系统调优实践
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档