写点什么

从“望车兴叹”到实时公交查询,是什么支撑起北京日均 800 万人次的公交系统?

  • 2021-02-03
  • 本文字数:3791 字

    阅读完需:约 12 分钟

从“望车兴叹”到实时公交查询,是什么支撑起北京日均800万人次的公交系统?
00:00 / 00:00
    1.0x
    • 3.0x
    • 2.5x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00

    《超级探访·春节特辑》之“启迪公交”篇(上)

    00:00 / 00:00
      1.0x
      • 3.0x
      • 2.5x
      • 2.0x
      • 1.5x
      • 1.25x
      • 1.0x
      • 0.75x
      • 0.5x
      网页全屏
      全屏
      00:00

      《超级探访·春节特辑》之“启迪公交”篇(下)


      说起公共交通,在地铁还没有发达的时候,北漂的人们或多或少都经历过“公交车囧事”。有人因为公交卡没钱只能无奈下车;有人顶着严寒酷暑在公交车站“望车兴叹”——公交车一趟又一趟,就是没有自己要搭的那一路;还有人好不容易等到了车,结果发现公交车挤成了“沙丁鱼罐头”,使出浑身解数也挤不上去,只能继续原地等待下一辆或者选乘其他交通工具。

       

      近些年随着云计算、大数据、物联网等新兴技术的高速发展,这些影响着人们出行的问题也得到了极大改善。如果公交卡忘记充钱,可以使用公交车软件扫码先乘车后付款;在出门前,就可以通过手机 APP 实时了解公交车到站的具体时间和车辆拥挤程度,减少因等车浪费的时间;此前疫情横行的严峻形势下,为避免交叉感染,公交车严格控制乘车人数,人们还可以通过手机 APP 提前预定车次,既保证了有需求的人出行,也加强了防疫力度。

       

      潜移默化间新兴技术究竟是如何改变了公共交通?这款帮助大家便利出行的手机 APP 又是“何方神圣”?它又是凭借哪些技术手段,帮助人们实现实时车辆动态查询等出行需求的?带着这些问题,我们来到了这款手机 APP 诞生的地方——启迪公交,探寻以上问题的答案。

      数据高楼难建“地基”,启迪公交实行技术突围

       

      众所周知,北京有着国内规模最大、车辆最多、计费方式最复杂的城市公交系统。而作为这个公交巨无霸系统的运营者,北京公交集团也是业内公认的“全球最大公交集团”,其拥有两万多辆公共电汽车,1000 多条运营线路,日均客运量超过了 800 万人次。隶属于北京公交集团的启迪公交就是这个巨无霸背后的科技“智囊团”。

       

      “支撑北京公交庞大的系统运转,需要一个强大、高效、高性能、稳定性极强的系统支撑。2018 年,启迪公交成立之初,便决定搭建包括‘北京公交 App’在内的一整套数字公交软硬件系统,帮助北京公交近 2.5 万台公共汽车互联上云。 ”启迪公交产品研发总监周国礼面对镜头讲道。

       

      但事实上,这并不是一个一蹴而就的事情。庞大的高并发数据量增加了研发的难度,巨无霸公交系统需要支撑北京市 2 万多辆公交车、早晚高峰出行 1500 笔/秒刷卡并发访问,且随着北京市日均 800 万人次的公交出行乘坐量,每日产生的上下车刷卡数据就能高达 1600 万笔,预计未来两年将会产生百亿级的数据存储和访问需求,这种数据高楼构建高可靠性系统架构地基的难度可想而知。

       

      传统的 IT 架构显然很难支撑,它既缺少可靠的数据传输机制,同时也缺少有效的对硬件设备安全管控的机制,以及对设备远程监控和管理的能力,难以应对早晚高峰高达每秒上千的并发量级,无法解决传统公交管理上实时监控、实时调度、基于数据进行支撑决策的难题。

       

      新的市场需求催生着更为强大的技术手段的出现,启迪公交需要一个强大的技术伙伴合力开展研究。

       

      经过慎重抉择,最终启迪公交从市场上诸多数据库产品中选用了阿里云 PolarDB-X 分布式数据库,构建云上全部业务系统。据周国礼介绍,他们做出这一选择的主要原因是 PolarDB-X 技术经历过多年阿里巴巴双十一考验,能够有效地满足业务超高并发以及海量数据存储的需求,还可通过选用多可用区部署满足同城容灾诉求,以及使用在线变配能力解决业务高峰时段的弹性诉求。

       

      基于以上诉求,双方快速达成了合作。

      搭载 PolarDB-X 云原生分布式技术,启迪公交实现全业务系统上云

       

      在乘客看不到的角落,新系统的开发上线总是会面临着诸多困难,例如如何才能在不影响居民正常出行的情况下快速完成数万台刷卡机的替换。“2018 年的时候,启迪公交面临在不影响道路公交运营的情况下,为全市 2 万多辆公交车替换 6 万+机具的难题。”启迪公交研发总监王前说到。

       

      以当时的情况来看,这似乎是一个“伪命题”,就在众人一筹莫展之际,阿里云云原生分布式数据库成为攻克难题的关键钥匙。

       

      “如果采用在场站等候的方式,至少需要几个月的时间才能完成全部机具的更换,而基于 PolarDB-X 云原生分布式的快速部署能力,我们迅速开发和上线了机具辅助安装系统,通过安装人员 GPS 数据与车辆 GPS 相结合,实现了人找车快速部署机具,更换新机具的效率大幅提高,短短 1 个半月的时间,就完成原本要 1 年时间才能完成的机具更换工作。”

       

      除此之外,PolarDB-X 云原生分布式技术也成功支撑住了北京公交系统庞大的数据高楼,不仅保障了北京日均 800 万人次乘车,也支持了 6 万多台车载刷卡机的设备连接和管理,同时更顶住了大型节假日、重大赛事下公交出行客流峰值对底层核心系统带来的严峻挑战。

       

      “基于阿里云原生分布式数据库 PolarDB-X 产品,我们构建了包括支持扫码、刷卡、第三方支付、票务管理的核心业务系统,在帮助公交系统实时掌握道路运行情况的同时,也帮助乘客更便捷进行线路查询。 ”携手阿里云,启迪公交为北京市民交出了一份满意的答卷。

       

      当被问及数据化给企业带来的直观感受时,王前以票务管理工作台为例进行了说明。

       

      作为公交内部的核心业务系统,票务管理工作台不仅需要承担与票务相关的业务,还要能够通过累计的业务数据进行分析,实现科学合理的指挥公交的核心业务,在支持城市公交正常运作上有着举足轻重的作用。

       

      “以往公交集团获悉路上具体有多少辆公交汽车在运行,也没有办法知道这些公交车的一个状态,没有办法快速调度车辆。当我们采用了 PolarDB-X 构建票务管理工作台后,通过用户检录数据就可以实时同步到阿里云原生数据仓库 AnalyticDB,继而分析出实时客流,结合公交汽车机具上传的扫码信息进行实时统一分析,支持指挥车辆调度,助力场站调度人员更加快速地进行业务策略调整,实现更加合理的调度排班方案。”

       

      比如说在重大节假日时,以往公交系统排班和运力调配往往是根据经验来进行操作,在某些地点突发客流激增时会出现运力不足、道路拥堵的情况,搭载了 PolarDB-X 的公交系统可以实时了解客流分布情况、运力情况,以便及时对客流激增地区补排车辆。

       

      基于云原生分布式数据库 PolarDB-X 方案构建云上业务系统


      当下,启迪公交已逐步将各个业务系统部署到了阿里云平台上,包括北京公交 App 的后端业务服务处理,刷码刷卡检录数据的采集和上传、合单、支付结算、清算、票务等等。阿里云平台统一提供云资源的分配、调度和支撑,包括系统的性能调优、梳理业务和技术架构、优化软件代码、协调内外部资源进行统一的研发、测试等一系列工作。除此之外,系统的整体安全性也由阿里云来支持配合。

      TPS 数高达 1.4 亿?云原生分布式数据库 PolarDB-X 的技术特性

       

      作为承载了北京公交最为核心和基础部分的数据库,云原生分布式数据库 PolarDB-X 方案到底有哪些优势和特点?



      从三种当前常见的数据库架构中便可窥一二,如上图所示,从左至右依次是单机数据库、共享存储数据库和分布式数据库。

       

      单机数据库的计算资源和存储资源易受到单个节点的容量限制。共享存储数据库将开源数据库(如 MySQL)的底层存储替换成共享的分布式存储,容量的可扩展性得到了显著提升,可以做到完全兼容开源数据库,但由于其上层组件保留了单机数据库结构,仍然受到单个节点的性能限制。而以 PolarDB-X 为代表的云原生分布式数据库架构,所有节点之间互相不共享资源,节点间通过网络进行通讯,无论是存储还是计算资源,只要添加机器就可以了,具有良好的可扩展性。由此可见,作为一种分布式数据库架构,PolarDB-X 的优势从一诞生便非常显著。

       

      此外,PolarDB-X 一直在朝着一个伟大愿景发力,即把各种架构的优势结合到一起,包括 Sharding on MySQL 的简单轻量,NewSQL 的高扩容,Cloud Native DB 存储容量的弹性扩展。其具有 6 个显著特点:

       

      • 高可用。基于 Paxos 协议,数据强一致;少数派节点故障下数据不丢、不停服;RPO=0 RTO<30s。

      • 高兼容。MySQL 兼容,支持全局事务,二级索引;主流国产操作系统和芯片互认证;全局 binlog 日志,兼容数据库上下游生态。

      • 高扩展。水平扩展,按需在线扩缩容,不停服;PB 级海量存储能力,单实例突破 256 节点(真实业务);千万级并发,可抵御双 11 流量峰值。

      • HTAP。智能读写分离,保障 TP 流量的稳定性;MPP 并行查询,基于只读副本保障查询隔离;基于全局 TSO 时间戳,保证多副本的一致性读写。

      • 极致弹性。存储资源池化,自动按需伸缩,按需付费;扩容不迁移数据,突发流量支持快速升配。

      • 开放生态。拥抱 MySQL 开源社区,代码自主可控;闭环生态工具支持,DTS/DBS/DMS;产品架构简单开放,社会人才密度高。

       

      作为阿里云自主研发的云原生分布式数据库,PolarDB-X 可谓是身经百战。其采用分布式 SQL 引擎与存储引擎,专注解决海量数据存储、超高并发吞吐,历经各届天猫双十一及阿里云各行业客户业务的考验,在 2020 年双十一期间更是支撑了 58.3 万笔/秒创建订单的峰值,数据库处理 TPS 数高达 1.4 亿。

       

      基于以上分析,PolarDB-X 能够承载住北京公交系统如此庞大且繁杂的数据压力,也就并不足为奇了。

       

      在和启迪公交的合作中,PolarDB-X 将上述的 6 大特色运用到了极致,其以云原生一体化架构设计底层,采用多副本的高可用架构最大限度保证系统的可靠性,为北京公交 APP 端提供稳定的用户体验,同时也为公交票务管理实时大数据分析运行提供着重要的数据支撑。 

       

      “公共交通出行关乎整个城市的核心基础保障,阿里云原生分布式数据库 PolarDB-X 方案极大地提升了公交运营效率和服务水平,助力启迪公交打造北京公交智能化业务系统,为首都人民提供了更加绿色和便利的公交出行服务。新基建时代下,未来希望我们能够更加紧密地结合,助力城市公交系统的智能化发展百尺竿头更进一步。”

      2021-02-03 15:463802

      评论

      发布
      暂无评论
      发现更多内容

      flutter系列之:查询设备信息的利器:MediaQuery

      程序那些事

      flutter 程序那些事 6月月更

      盘点一些好用且小众的 Markdown 编辑器

      宇宙之一粟

      markdown编辑器 6月月更

      研究uni-app的第五天

      恒山其若陋兮

      6月月更

      linux之我常用的系统重要文件备份命令

      入门小站

      Linux

      vue prop传递数据

      小恺

      6月月更

      数据质量管理

      奔向架构师

      数据治理 数据管理 6月月更

      在线文本列表空行过滤工具

      入门小站

      工具

      leetcode 198. House Robber 打家劫舍(中等)

      okokabcd

      LeetCode 动态规划 数据结构与算法

      Java Core 「9」J.U.C 同步工具类-1

      Samson

      学习笔记 Java core 6月月更

      如何防止NFT行业被污名化?

      CECBC

      微服务如何拆分

      阿泽🧸

      微服务 6月月更

      【LeetCode】数组中的 k-diff 数对Java题解

      Albert

      LeetCode 6月月更

      转转统一权限系统的设计与实现(设计篇)

      转转技术团队

      权限系统 rbac

      揭秘攻防演练中红队需要什么样的人才

      穿过生命散发芬芳

      6月月更 攻防演练

      95后阿里P7晒出工资单:狠补了这些个技术栈,真的香啊

      Java全栈架构师

      Java 程序员 面试 架构师 Java面试题

      在线JSON转YAML工具

      入门小站

      工具

      DAO模式的发展现状,M-DAO如何用技术实现领先

      股市老人

      阿里云智能编码插件进行了一个上新大动作

      阿里云云效

      云计算 阿里云 云原生 代码

      官宣!Apache Doris 从 Apache 基金会毕业,正式成为 Apache 顶级项目!

      SelectDB

      Apache 数据库 apache doris

      “多元化”通证经济模型:DAO的神经和血液

      CECBC

      Java的面试技术点

      卢卡多多

      Java 面试官 6月月更

      频频破圈,走向百业:大模型的毕业季

      脑极体

      一款可以实现内网脱机分享文档的接口测试软件

      Xd

      Java 数据库 后端 API 接口测试软件

      元宇宙来袭的五个趋势

      CECBC

      V1签名校验

      北洋

      Andriod 6月月更

      数据库每日一题---第14天:用户推荐人

      知心宝贝

      数据库 云计算 前端 后端 6月月更

      DevStream 成为 CNCF Sandbox 项目啦!- 锣鼓喧天、鞭炮齐鸣、红旗招展、忘词了。

      胡说云原生

      开源 cncf DevStream

      再仿个人主页来看 GetX 和 Provider 之间的 PK

      岛上码农

      flutter ios 前端 安卓 6月月更

      数字人民币预付式消费的监管之道,智能合约能不能解决所有问题?

      CECBC

      一文带你认识HTML

      未见花闻

      6月月更

      如何做好产品管理

      爱吃小舅的鱼

      从“望车兴叹”到实时公交查询,是什么支撑起北京日均800万人次的公交系统?_数据库_马红伟_InfoQ精选文章