云原生分布式数据库PolarDB-X与北京公交系统的不解之缘,从脱离公交卡说起

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 作者:InfoQ 马红伟

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

近些年随着云计算、大数据、物联网等新兴技术的高速发展,这些影响着人们出行的问题也得到了极大改善。如果公交卡忘记充钱,可以使用公交车软件扫码先乘车后付款;在出门前,就可以通过手机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的公交系统可以实时了解客流分布情况、运力情况,以便及时对客流激增地区补排车辆。

image.png

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

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

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

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

单机数据库的计算资源和存储资源易受到单个节点的容量限制。共享存储数据库将开源数据库(如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方案极大地提升了公交运营效率和服务水平,助力启迪公交打造北京公交智能化业务系统,为首都人民提供了更加绿色和便利的公交出行服务。新基建时代下,未来希望我们能够更加紧密地结合,助力城市公交系统的智能化发展百尺竿头更进一步。”

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
目录
相关文章
|
15天前
|
存储 运维 负载均衡
构建高可用性GraphRAG系统:分布式部署与容错机制
【10月更文挑战第28天】作为一名数据科学家和系统架构师,我在构建和维护大规模分布式系统方面有着丰富的经验。最近,我负责了一个基于GraphRAG(Graph Retrieval-Augmented Generation)模型的项目,该模型用于构建一个高可用性的问答系统。在这个过程中,我深刻体会到分布式部署和容错机制的重要性。本文将详细介绍如何在生产环境中构建一个高可用性的GraphRAG系统,包括分布式部署方案、负载均衡、故障检测与恢复机制等方面的内容。
68 4
构建高可用性GraphRAG系统:分布式部署与容错机制
|
18天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
64 3
|
17天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
16 1
|
1月前
|
SQL 存储 关系型数据库
数据储存数据库管理系统(DBMS)
【10月更文挑战第11天】
86 3
|
1月前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
31 2
|
1月前
|
安全 NoSQL 关系型数据库
阿里云数据库:构建高性能与安全的数据管理系统
在企业数字化转型过程中,数据库是支撑企业业务运转的核心。随着数据量的急剧增长和数据处理需求的不断增加,企业需要一个既能提供高性能又能保障数据安全的数据库解决方案。阿里云数据库产品为企业提供了一站式的数据管理服务,涵盖关系型、非关系型、内存数据库等多种类型,帮助企业构建高效的数据基础设施。
55 2
|
1月前
|
消息中间件 中间件 数据库
NServiceBus:打造企业级服务总线的利器——深度解析这一面向消息中间件如何革新分布式应用开发与提升系统可靠性
【10月更文挑战第9天】NServiceBus 是一个面向消息的中间件,专为构建分布式应用程序设计,特别适用于企业级服务总线(ESB)。它通过消息队列实现服务间的解耦,提高系统的可扩展性和容错性。在 .NET 生态中,NServiceBus 提供了强大的功能,支持多种传输方式如 RabbitMQ 和 Azure Service Bus。通过异步消息传递模式,各组件可以独立运作,即使某部分出现故障也不会影响整体系统。 示例代码展示了如何使用 NServiceBus 发送和接收消息,简化了系统的设计和维护。
47 3
|
2月前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
1月前
|
存储 NoSQL 关系型数据库
数据库管理系统
【10月更文挑战第8天】
58 1
|
1月前
|
数据可视化 API PHP
低代码开发工具-学生管理系统-老师管理增删改查实现
低代码开发工具-学生管理系统-老师管理增删改查实现
31 5

相关产品

  • 云原生分布式数据库 PolarDB-X
  • 云原生数据库 PolarDB