雷锋网 05-12
第七次全国人口普查背后:腾讯云如何应对高并发与海量数据?
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

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 分钟以内,也很大程度上降低了后期数据录入、处理的难度。

雷锋网雷锋网

相关标签

互联网 准确 生命线 分布式数据库 深圳
相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论