资讯 业界
此为临时链接,仅用于文章预览,将在时失效

第七次全国人口普查背后:腾讯云如何应对高并发与海量数据?

作者:程希
2021/05/12 17:19

5月11日,第七次全国人口普查结果公布。

国家统计局总统计师曾玉平在发布会直播中表示,“普查数据质量是普查统计工作的生命线……利用信息化,对普查方式进行创新:首次全面采用电子化,实时及时上报数据;首次实现普查对象通过互联网自主填报;首次利用行政大数据进行比对核查;首次实现利用互联网云计算云服务实时处理工作;首次用信息化系统对700多万普查员进行线上管理。”

腾讯云在背后为第七次全国人口普查保驾护航。据统计,在该项目中,腾讯云数据库支持了十亿级用户数据、七百万个终端和百万级峰值TPS(每秒处理量)。

我国每十年进行一次人口普查:从1953年的算盘,到后续的计算机,数据采集的变迁从未改变纸表录入的形式。而到了第七次全国人口普查,电子化采集全面取代纸表,将数据直接上报到国家统计局。700万普查员、全体中国大陆公民,首次在线上完成人口普查数据采集。

这也意味着,需要开发一套中国首例、同时是触达人群最大的线上系统。你输入的一条条数据,最终汇成统计结果的汪洋大海:这背后的数据采集、流转、脱敏、处理分析过程,难度超出所有人想象。这是一个高并发、极其复杂、在全球历史上都堪称首次的项目。

封闭开发

2020年3月,腾讯正式接到第七次全国人口普查项目,封闭开发启动。接到这个消息时,架构师王飞心里清楚,这意味着要在疫情肆虐之时与他才一个多月的孩子分开。

这个所有普查员同时操作的系统,要保证数据安全和服务稳定,比他以往接触的所有项目对性能的要求都更加苛刻,他必须在架构的设计以及后续的压测运维中全力以赴。整个项目周期的严峻性、交付难度,都需要团队付出更大的心力。

时间紧迫,任务艰巨。700万普查员实际上形成了一个巨大的企业组织,分散流动在全国各处,如何让其保持整齐划一,只能一边不断讨论梳理,一边在摸索中开发产品功能。

第一个任务,是要一款集合了任务分配、数据采集功能的企业微信小程序,需在一个月之后上线。

这背后需要腾讯云数据库极强的负载能力。“大量的数据要收集上来,同时数据的更新和数据的查询是互相交错的,不仅要应对动态的人口流动,比如一个人今天在深圳而明天在北京,同时要准确对应起人和户、人和人之间的关系。”王飞介绍说。

本次全国人口普查项目,腾讯云数据库提供了既具有擅长OLTP场景能力,同时擅长联机分析处理OLAP场景能力引擎的企业级分布式数据库TDSQL,通过“双引擎”设计支撑人口普查工作完成。前者专门用来做前端生产系统的事务处理,其最大的优点是即时地处理输入的数据,并及时响应,实时保持系统数据处于最新状态;后者负责后期数据联机查询分析处理,支持复杂的分析操作。

双引擎技术能力的融合,完整、平稳、高效地支撑了全国人口普查数据登记及统计分析整个体系化工作。测试中,TDSQL数据库应对高并发场景时可以实现最高250万每秒的吞吐量,这样的吞吐规模已经可以满足目前中国人口2倍的数量。借此,TDSQL数据库扛住了普查过程中的并发高峰。

同时,业务具有大规模实时查询分析的需求,普查员在前端不断录用的数据也将在TDSQL OLAP能力引擎中进行进一步的数据分析。而这些需求TDSQL也很好地满足了。据了解,在这些庞大的数据中,不乏多张超级大表关联高并发统计查询,其每张表中存放了超过20亿+条记录。如果把其中存放一张超级表的空间用来存放平均50万字的书籍,可以放下超过1000万本,一个人终其一生也读不完。

在此过程中,OLAP分析计算开销大、延迟长,同时还要满足海量的并发请求,TDSQL OLAP引擎通过水平扩展多个只读平面,即可良好地满足业务的要求,为复杂查询分析场景提供线性读扩展能力,并通过在多个平面前置负载均衡做到扩缩容业务完全无感知;与此同时,基于全局一致性技术,可实时保障多平面下内部的全局读一致性。

准备与攻坚

一位普查员站在内蒙古牧区,在飞扬的草场中举着手机,眉头紧皱。手机里的信号在此处中断了,这也意味没法在此完成在线登记。得知消息后,项目组意识到,必须要想个办法。

离线状态下,数据不能实时上报,更会出现两个普查员在同一个离线区域同时上报的情况,如何实现在恢复信号的情况下,有序采集上报数据,需要在原有的基础上做更精细化的打磨。

随着全国试点的启动,类似于离线的问题也逐渐被 发现、放大。随着试点范围逐渐增大,从一个街道的7、8万人,直接变成了全国31个省市的几千万人,性能要求越来越高,问题越来越多。

人口普查的信息登记,最终需要落到“人”身上——每一个普查员都必须正确理解和使用登记表单。全国32个省/自治区都使用腾讯乐享进行普查员的线上培训,方便普查员获取一手政策资料、参与线上课程学习。通过腾讯乐享,普查员更快速地理解表单指标含义、掌握与居民们沟通的技巧、更精准地记录数据。

第七次全国人口普查背后:腾讯云如何应对高并发与海量数据?

(第七次全国人口普查软件培训)

腾讯乐享像一张网,连接了所有的普查员,让普查工作顺利高效进行下去。

为了兼顾不同人群的不同上门场景与操作习惯。全国试点之前,还需要额外完成自主填报功能的实现。如何在没有普查员在场的情况下自主完成信息填报,需要增加大量的数据审核功能,例如身份证号填错了,就出现提示,让其重新填写。同时,易用性、便捷性是自主填报小程序的重中之重。

除了繁重的开发工作之外,内外的团队、不同的产品、差异的技术、不熟悉的流程也给刚刚开始的项目带来了很多的工作量和难度。

整个人口普查项目部分模块使用了云开发功能,避免了应用开发过程中繁琐的服务器环境搭建及运维,开发人员只需要专注于业务逻辑的实现,让整个发开过程简单又高效。

两个月时间内,项目组基于腾讯云原生容器化的方式进行开发和构建。从业务部署、压力测试到最终上线,本次项目全面云原生化,底层的容器技术及TKE提供的新一代容器网络方案带来了极致性能提升,可稳定支撑100万人同时上报。

同时,通过微服务网关、服务鉴权、账户权限等安全体系以及微服务路由等治理手段,有效保障了本次项目的服务质量和安全性。

在全国试点展开的同时,压测的工作也如火如荼地开展了起来。最终上线时,全国人口信息需要在15天内完成采集,预测将达到50万每秒查询率(QPS),这一政务史上最高的海量并发,势必会对后台带来严峻的考验。

技术人员必须提前测出所有风险,不然系统极有可能全面崩溃。

为了不影响白天综合试点的运转,所有的压测都安排在了夜里,那段时间里,压测人员也几乎没有睡过一个完整的觉。系统一直处于满载状态,随时都需要紧急调优。彼时人手也紧缺,项目组成员经常一测就是一个通宵。

保障系统稳定方面,除了压测工作,在灾备设计上,整个数据库还采用了一主三从和异地灾备的备份方案,在某个数据节点出现故障时,都能保证数据的完整和一致;哪怕出现大规模的突发情况,通过异地灾备,也能够进行数据恢复。

零点行动

“打扰了,我是人口普查员,现在正要对您家做普查登记。”

47岁的吴景文是沙坪坝天星桥街道的普查员,这是他第二次参与人口普查。一样的红帽子、红马甲,不同的是这一次他的胸前多了本证件,上面印着用于登记的二维码。

第七次全国人口普查背后:腾讯云如何应对高并发与海量数据?

(普查员上门调查)

摸底阶段,前线的普查员将在正式采集开始前上门摸清全国住户的基本情况,以为正式采集提供参考。项目组所在的北京泰鹏大厦7楼,成为了唯一7*24小时灯火通明的楼层。从第一条数据,到后续全国用户的上报,一个多月的时间里,现场122人全力投入到了重保工作之中,把泰鹏大厦变成了后方没有硝烟的战场。

11月1日零点,在国家统计局的会议室中,举行了一场简短而隆重的开网仪式,宣告了第七次全国人口普查短表登记正式启动。

第七次全国人口普查背后:腾讯云如何应对高并发与海量数据?

(零点行动)

该阶段,主要采集人口基本信息,而紧随而至的长表采集阶段,则会在短表的基础上,增加更多字段进行采集。

而在后方,从上线的那一刻,交付项目总监李欣一直都非常忐忑。全国短表数据将在后续的15天里完成采集。从开始第一天起,每秒查询率(QPS)就猛增到7万,峰值一举达到了11万左右。这么多的数据,一条都不能丢,系统也一秒都不能断。还好在此前精心的架构设计、持续的产品优化、密集的性能压测使问题不断得到解决,采集系统始终保持稳定运行。

然而除了数据采集之外,在数据处理上,也带来了极大的压力。随着七人普采集工作正式启动,全国所有的统计人都迎来了不眠夜,各省都在加班加点工作。项目组也在24小时、甚至48小时连轴转。

据不完全统计,在此次第七次全国人口普查项目中,腾讯共有40多个部门、超过300人参与其中,封闭周期长达200多天。据新华网统计报道,与2010年全国第六次人口普查的纸表入户登记方式相比,电子采集的方式将登记时间缩小到了20分钟以内,也很大程度上降低了后期数据录入、处理的难度。

雷锋网雷锋网

长按图片保存图片,分享给好友或朋友圈

第七次全国人口普查背后:腾讯云如何应对高并发与海量数据?

扫码查看文章

正在生成分享图...

取消
相关文章