12306 互联网售票系统余票数据一致性保障技术方案研究

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 第30卷 第4期 Vol.30 No.4 研究与开发 Research and Development 文章编号:1005-8451(2021)04-0011-06 12306 互联网售票系统余票数据一致性 保障技术方案研究 李 杨 1 ,李 雯 2 ,胡志鹏 2 ,戴琳琳 2 (1. 中铁程科技有限责任公司,北京 100081; 2. 中国铁道科学研究院集团有限公司 电子计算技术研究所,北京 100081) 摘 要:为了提高旅客互联网购票体验,减少购票中出现的余票问题,研究分析故障原因,制定了 12306 互联网售票系统余票数据一致性保障技术方案,组合运用加强数据同步链路监控、余票数据一致 性检测与修复、余票计算规则检查、余票数据缓存有效期动态调整等多种技术手段。方案已于 2019 年 12 月底实施,使用方案实施前后因余票问题导致的旅客投诉率对方案实施效果进行评价,结果表明:方 案实施后客户投诉率降低了 80%。 关键词:铁路客票发售和预订系统;互联网售票;余票查询;故障分析;数据一致性;数据同步 中图分类号:U293.22 : TP39 文献标识码:A Research on technical solutions of data consistency assurance of surplus tickets in 12306 Internet ticketing and reservation system LI Yang 1 ,LI Wen 2 ,HU Zhipeng 2 ,DAI Linlin 2 ( 1. China Rails Travel Technology Co. Ltd., Beijing 100081, China;2. Institute of Computing Technologies, China Academy of Railway Sciences Corporation Limited, Beijing 100081, China ) Abstract: In order to improve the passenger's experience in on-line ticket purchase and to reduce the occurrences of surplus tickets troubles, the causes of surplus tickets troubles are analyzed and a portfolio of technical solutions to assure the data consistency of surplus tickets in 12306 Internet ticketing and reservation system is proposed by combining several technical solutions including enhanced link monitoring of surplus tickets data synchronization, detection and repair of data inconsistency of surplus tickets, validation of surplus tickets calculation rules, dynamic adjustment of cache aging duration and so on. This portfolio was implemented in Dec, 2019 and its effect is evaluated by using the rate of customer complaints on surplus tickets troubles. The statistics shows that the customer complaint rate had been reduced by 80% after the implementation of this portfolio. Keywords: railway ticketing and reservation system;on-line ticket sales;surplus tickets query;fault analysis;data consistency;data synchronization 经过多年的发展,中国铁路客票发售和预订系 也是旅客购票时关注的焦点。为了提升查询效率和 统(简称:客票系统)已成为覆盖全国的超大型分 并发性能,更好地保证 12306 互联网售票系统的稳定 布式售票网络 ;12306 互联网售票系统是其中一个 性和高效性,结合分布式内存数据库 [3] ,采用多级缓 最主要的售票渠道,自上线以来,以便捷性迅速得 存、数据同步等多种技术手段,大幅提升了余票查 到广泛认可 ,越来越多的旅客通过互联网购票,互 询业务的处理性能,成功经受 2015 年以来历次春运 联网售票量呈大幅增长态势,售票高峰期的大量并 售票高峰的考验。 [1] [2] 发请求给互联网售票系统带来的压力也屡创新高。 余票查询是 12306 互联网售票系统的功能之一, 在旅客购票过程中,偶尔会出现余票数据不一 致问题:旅客能够在 12306 网站或者 12306App 上查 询到余票,下单时却被提示余票不足,导致出票失 收稿日期:2020-11-23 基金项目:中国铁路总公司科技研究开发计划项目(P2018X002) 作者简介:李 杨,工程师;李 雯,高级工程师。 败,降低了旅客的购票体验,甚至招致旅客投诉。 为此,对余票查询业务的数据处理流程进行梳理, RCA 2021.04 总第 289 期 11
2. 研究与开发 2021年4月 查明余票数据不一致的原因,并提出余票数据一致 1.3 性保障技术方案,有效减少余票数据不一致的问题, 客服外网及互联网 客服外网和互联网区域的数据处理主要负责提 让旅客在线购票时获得更佳的用户体验和更高的满 供余票查询服务,12306 互联网售票系统在用户终端 意度 ,降低旅客投诉率。 与内存集群的实时查询结果之间设置有 2 级缓存: [4] 1 余票查询业务数据处理的总体流程 设置在客服外网区域的余票结果缓存和设置在互联 网 区 域 的 内 容 分 发 网 络 ( CDN, Content Delivery 总体上,12306 互联网售票系统余票查询业务的 数据处理流程需要跨越 4 个网络区域:客票网、客 Network)缓存,以缓解大量余票查询请求对网站服 务器的压力。 服内网、客服外网和互联网,如图 1 所示。 2 PC 余票查询业务处理的主要流程 App 2.1 余票基础数据生成与同步 目前,铁路客票系统使用的数据复制系统覆盖 CDN 范围广、效率高,是国内应用非常成功的复制系统 [5] 。 其中,余票基础数据同步更为复杂,通过组合运用 多种同步产品,实现余票数据在异构数据库之间的 高速数据同步 [6] 。余票数据的生成与同步以分布在 18 个铁路局集团公司的数十个席位库为数据源,其 主要流程如下: (1)进行客票交易时,由铁路局集团公司席位 中心完成席位处理,之后通过席位信息计算得到余 票基础数据,将其存储在铁路局集团公司余票库; (2)通过数据库复制,将本铁路局集团公司多 个席位中心的余票基础数据实时汇总至铁路局集团 图1 1.1 余票查询业务数据处理的总体流程示意 (3)汇总后的铁路局集团公司余票基础数据通 客票网 客票网区域的数据处理主要负责余票数据的产 过复制,实时同步到国铁集团双活数据中心的基础 生和数据同步:(1)从铁路局集团公司数据中心席 数据节点及余票前置数据库中,完成 18 个铁路局集 位 库 抽 取 余 票 原 始 数 据 ( 也 称 为 余 票 基 础 数 据 ), 团公司余票基础数据汇总。 将其存储到铁路局集团公司余票库;(2)将各铁路 (4)国铁集团双活数据中心的余票前置数据库 局集团公司余票库中的余票基础数据同步到中国国 通过实时数据同步,将余票基础数据同步到双活数 家铁路集团有限公司(简称:国铁集团)数据中心, 据中心余票计算缓存集群。 以完成全路余票基础数据汇总。 2.2 1.2 客服内网 客服内网区域的数据处理主要负责余票计算。 余票结果计算 余票业务计算逻辑非常复杂,不仅数据处理量 大(余票基础数据的数据量高达数千万行),同时 在 12306 互联网售票系统中,旅客通过 12306 网站或 依据各种售票规则完成余票结果计算,余票查询时 者 12306App 查询到的余票结果是客服内网区域中余 余票结果计算逻辑的流程如图 2 所示。 票计算缓存集群基于余票基础数据和各种计算规则 生成的计算结果,涉及较为复杂的余票业务逻辑。 12 公司余票库; 2021.04 总第 289 期 RCA 如图 2 所示,每次余票查询都要在余票原始数 据的基础上,经判断车次开行规律、判断预售期、
3. 第30卷 第4期 李 研究与开发 杨等:12306 互联网售票系统余票数据一致性保障技术方案研究 障。系统硬件故障是指服务器硬件、网卡、交换机 等承载余票业务的硬件基础设施出现故障。系统软 件故障是指查询路径上的缓存或余票计算集群出现 故障、数据库同步路径上的同步程序出现故障(包 括数据同步产品挂起、数据传输僵死等)。尽管客 票系统的硬件设备和系统软件都采用冗余配置实现 高可用 [8-9] ,以避免单节点故障,但故障切换期间或 多节点故障时难免会对余票查询业务造成一定影响。 3.2 余票基础数据同步故障 余票基础数据同步故障,是指在数据同步过程 中数据变动监听、数据变动采集、数据传输、数据 载入时出现延迟或者业务失败、甚至数据丢失的情 图2 余票结果计算流程 况,从而造成数据同步链路上任意 2 个节点之间的 处理调度命令、处理席位共用定义等多步计算 [7] ,最 数据不一致,进而影响余票查询业务的完整性。 后生成余票查询结果。 3.3 2.3 余票结果计算故障,主要是因为在批量调整车 余票数据查询 余票查询过程涉及内存计算查询集群和二级余 票查询结果缓存。 当余票查询时,余票计算缓存集群经过复杂计 余票结果计算故障 次时,由于车次变动较多,偶尔会导致席位共用策 略未及时生成;或者是临时增减停靠站时,计划管 理后台进程未及时检测到停靠站变化,致使席位共 算之后,得到余票查询结果,在返回余票查询结果 用策略生成延迟,进而导致余票结果计算不准确, 过程中,余票查询结果依次缓存在客服外网内的余 余票查询不到、发售不出。 票结果缓存集群和 CDN 缓存中,并设置一定的缓存 3.4 有效期;在缓存有效期内,前台应用再次查询余票 时,是直接从缓存集群中读取余票查询结果。 3 故障分析 余票问题存在多种现象,如:旅客从多个渠道 (车站大屏、12306App、12306 网站)看到的余票数 量不一致;旅客在 12306 网站上看到有余票,但下订 单时却被提示余票不足;实际余票充足,但旅客却 无法查询到余票等等。 根据系统运维经验,余票问题的主要原因是余 票查询业务处理的 3 个主要流程出现故障,即余票 基础数据生成与同步故障、余票结果计算故障和余 票数据查询故障;此外,还会出现与业务处理流程无 关的系统故障,包括硬件、服务器、系统进程等故障。 3.1 系统故障 系统故障主要包括系统硬件故障和系统软件故 余票查询缓存问题 余票查询业务采用 2 级缓存来降低服务器压力, 平衡用户的购票需求和网站服务器的压力。余票计 算结果缓存时效设置的长短及数据更新频率会直接 影响余票查询时的数据一致性,如余票计算结果缓 存的有效期设置为 5 min,在这 5 min 内若有购票操 作完成,则再次进行余票查询时,就会出现余票查 询结果与实际余票数量不一致的问题。 4 余票数据一致性保障技术方案 针对上述 4 类故障,采用多种方案相结合,来 保障余票查询功能的数据一致性,如表 1 所示。 表1 余票查询数据一致性保障方案 故障类型 解决方案 系统故障 完善监控,增加余票数据同步全链路监控 余票基础数据同步故障 增加余票基础数据同步一致性检测和数据修复机制 余票结果计算故障 增加规则定义检查工作流,定时检测和修复规则定义 余票查询缓存问题 动态设置余票计算结果缓存有效期,针对余票敏感车次 和特定时间段,适当缩短缓存有效期 RCA 2021.04 总第 289 期 13
4. 研究与开发 4.1 2021年4月 加强数据同步链路监控 将该车次的余票数据从源中心的席位库重新同步, 通过余票数据同步全链路监控系统能够对数据 等待下一次候补兑现请求的轮询检测。 同步过程中的数据节点健康状况以及数据同步情况 (2)监控候补兑现结果,若候补余票计算出存 进行实时监控,也能对余票查询路径上的缓存和内 在符合条件的余票时,候补服务会进行候补需求兑 存数据库健康状况进行监控。 现,调用扣票程序,当扣票程序返回的错误提示为 如图 3 所示,余票数据同步链路监控画面可展 “没有足够的车票”时,将触发余票检测程序,对 示余票数据生成和同步的总体流程、流向和途径节 比余票查询接口返回结果和席位库查询结果,若两 点,包括从铁路局集团公司数据中心余票库到国铁 者一致时,表示余票数据通过一致性校验,需要将 集团双活数据中心余票前置数据库进行余票汇总, 失败请求通过告警通知发出,进行人工处理;若两 从余票前置数据库经异构数据同步(包括数据采集、 者不一致时,则触发数据同步,将对应车次的余票 数据传输、数据载入多个环节)到多个余票计算缓 基础数据从源中心的席位库重新同步,等待下一次 存集群,通过代理、被动检测以及主动获取等多种 候补请求的轮询检测。 (3)利用交易中间件,通过日志监测“没有足 不同监控数据获取方式 ,对链路上关键节点的硬件 [10] 设备和系统软件进行监控,包括服务器、内存、CPU、 够的车票”报错信息,获取报错车次,之后通过工 网络、同步产品进程、数据库以及缓存集群状态等 作流轮询表,按车次检测余票查询接口查询结果与 情况,并在节点发生故障时及时发出告警。 票源中心余票数据的一致性,若发现数据不一致, 则从席位库重新生成余票基础数据,并完成余票基 余票数据同步全链路监控 重大告警 中等告警 正常 础数据同步。 一中心 二中心 线上 线下 4.3 线上 线下 载入 缓存集群 载入 缓存集群 缓存集群 传输 缓存集群 传输 缓存集群 采集 采集 缓存集群 缓存集群 缓存集群 一中心 余票前置 北京 集中 北京 集中 北京 集中 上海 集中 上海 集中 广州 集中 广州 集中 广州 集中 ADL_DS AD_DS 二中心 余票前置 济南 集中 成都 集中 南宁 集中 西安 集中 上海 广州 成都 兰州 图3 4.2 停靠站的站序匹配,通过工作流轮循或手工方式执 行检查,检查方式如下: (1)进行停靠站维护时,在国铁集团基础数据 中心由数据维护程序记录对应车次的维护日志。工 国铁集团 路局 北京 为确保席位共用策略中设置的席位共用关系与 缓存集群 缓存集群 哈尔滨 南昌 南宁 青藏 乌鲁 木齐 沈阳 呼和 浩特 武汉 郑州 济南 昆明 西安 太原 余票数据同步全链路监控画面 作流根据日志轮循生成席位共用策略,同时控制数 据处理数量,保障复制系统工作稳定; (2)工作流定期检查预售期内车次对应的席位 余票数据一致性检测与修复 共用策略是否缺失,若发现席位共用策略缺失,则 余票数据变动非常频繁,时效要求高。考虑到 重新生产该车次的全程席位共用策略; 票额充足时,旅客对余票数据一致性要求相对不高, 14 余票计算规则检查 (3)为铁路局客票管理人员提供前台工具,由 但票额不足时对余票数据一致性要求十分强烈的特 操作员手工执行立即检查,并生成席位共用策略, 点,余票数据一致性检测与修复采取多种保障机制, 以避免轮循速度较慢、等待发售席位共用的票额时, 重点检测余票不足车次的余票数据一致性,并进行 出现席位共用策略未及时生成的问题。 数据修复。 4.4 余票数据缓存有效期动态调整 (1)定时根据候补兑现请求获取待检测的车次 强化清理缓存机制,动态设置车次的余票查询 列表,根据始发车次、发站、到站、始发日期、席 结果的缓存有效期,即余票计算结果在 CDN 以及余 别,分别调用余票接口和查询席位库获取余票数据, 票结果缓存集群中不再按固定的有效期进行缓存, 对比两者结果;若余票数据一致,表示余票查询通 而是根据不同车次动态设置余票查询结果的缓存有 过数据一致性校验;若不一致,则触发数据同步, 效期。例如,对于热点车次或是距开车时间较近的 2021.04 总第 289 期 RCA
5. 第30卷 第4期 李 研究与开发 杨等:12306 互联网售票系统余票数据一致性保障技术方案研究 车次,其余票查询结果的数据缓存有效期可设置得 较短,确保能够及时刷新余票结果数据。对于冷门 车次或停运车次,余票查询结果的缓存时间会调整 得略长一些,以减少因余票查询结果缓存造成的余 票查询数据不一致。 5 实施效果分析 为了准确分析余票数据一致性保障技术方案的 图5 实施效果,以铁路客户服务中心信息系统提供的旅 12 306 互联网售票量统计(2018.8—2020.10) 客对于“查询到余票后,提交订单时又提示余票不 足”问题的投诉量作为评价指标,对 2018 年 8 月— 2020 年 10 月的投诉量进行统计,如图 4 所示。 图6 旅客针对余票问题的投诉比统计(2018.8—2020.10) 由图 6 可知,往年售票高峰期的投诉比基本在 一个水平线上,2019 年 12 月底实施余票数据一致性 图4 旅客针对余票问题的投诉量统计(2018.8—2020.10) 保障技术方案之后,投诉比一直处于一个较低的水 平;因疫情原因,2020 年初投诉比较低,2020 年 7 由 图 4 可 以 看 出 : 12306 互 联 网 售 票 系 统 于 月售票量恢复正常之后,投诉比也没有明显增多; 2019 年 12 月底实施余票数据一致性保障技术方案之 尤其在十一期间,因国外疫情汹涌,旅客主要选择 后,旅客投诉量开始明显降低;旅客投诉量随时间 国内出行,铁路动车客运发送量再创新高,而此期 略有高低起伏,在五一、十一、春运售票高峰期均 间旅客因余票问题投诉仅有 1 条,投诉率降低 出现投诉量增多。 了 80% 以上,余票一致性保障技术方案的应用效果 鉴于不同时段旅客的购票需求存在差异,售票 非常显著。 量会影响旅客投诉数量。为了更好地进行分析,生 成 2018 年 8 月—2020 年 10 月的 12306 互联网售票 量指标统计图,如图 5 所示。 6 结束语 自 12306 互联网售票系统上线以来,余票查询 由图 5 可知,售票量随时间波动,节假日期间 一直是一项重点业务,也是旅客关注的焦点。12306 会出现波峰,2020 年初因疫情原因,售票量还出现 互联网售票系统采用分布式内存余票计算集群、数 了一个比较显著的低谷,直至 2020 年 7 月,售票量 据同步、多级缓存等多种技术,大幅提高了余票查 才基本恢复正常。 询业务的处理性能,较好地适应了互联网售票量急 结 合 投 诉 量 C 和 售 票 量 T, 定 义 投 诉 比 指 标 速增长的形势。但是,由于余票查询业务的处理流 R = C / T,生成 2018 年 8 月—2020 年 10 月旅客针对 程、计算逻辑和同步机制都较为复杂,偶尔会出现 余票问题的投诉比统计,如图 6 所示。 余票问题,影响了旅客购票体验。 RCA 2021.04 总第 289 期 15
6. 研究与开发 通过细致梳理余票查询业务的数据处理流程, 分析造成余票问题的各类原因,针对这些故障原因, 提出余票数据一致性保障技术方案,并于 2019 年 12 月 底 实 施 。 根 据 2018 年 8 月 —2020 年 10 月 12306 互联网售票系统相关数据的统计,该方案可显著提 高余票查询数据一致性,大幅降低因余票问题导致 的旅客投诉率,应用效果显著。 2021年4月 44. [4] 曾雅蓉. 12306网站旅客在线订票满意度影响因素研究[D]. 宜昌:三峡大学,2016. [5] 崔建岷. Sybase复制服务器构造及其在客票系统中应用 [J]. 铁路计算机应用,2000,9(1) :34-36. [6] 李 杨,阎志远,朱建军,等. 铁路客票系统应用开源数 据库技术研究 [J]. 铁路计算机应用,2017,26(8) :8-12. [7] 杨立鹏,王 拓,刘卓华,等. Java优化策略在铁路互联网 参考文献 售票系统中的应用研究 [J]. 铁路计算机应用,2016,25 [1] 朱建生. 新一代客票系统总体技术方案的研究 [J]. 铁路计算 (8) :21-25. 机应用,2012,21(6) :1-6. [2] 王 拓,朱建生,王明哲. 分布式内存数据库在铁路互联 网售票余票查询中的应用研究[C]//中国智能交通协会. 第八 届中国智能交通年会论文集 . 北京:电子工业出版社, 2013:556-561. [3] 梅巧玲,王明哲,张志强,等. 内存数据库在互联网余票 查询中的应用 [J]. 铁路计算机应用,2014,23(3):41- [8] 李 琪,刘相坤,武振华. 铁路客票系统中容灾数据同步 的研究[C]//中国智能交通协会. 第九届中国智能交通年会论 文集. 北京:电子工业出版社,2014:828-832. [9] 王元媛,张志强. 铁路客票系统席位管理研究 [J]. 铁路计算 机应用,2016,25(4) :34-37. [10] 李雁明. 铁路互联网售票系统的系统级监控研究[D]. 北京: 中国铁道科学研究院,2016. 责任编辑 16 2021.04 总第 289 期 RCA 桑苑秋

首页 - Wiki
Copyright © 2011-2025 iteam. Current version is 2.139.2. UTC+08:00, 2025-01-22 17:06
浙ICP备14020137号-1 $访客地图$