APP下载

客票余额信息发布策略与方法研究

2010-05-08王奇成

铁路计算机应用 2010年12期
关键词:客票汇总车站

王奇成

(广铁集团 信 息技术处,广州 5 10088)

客票余额信息发布是铁路客票系统的一项关键业务,也是客运营销工作中的重要环节之一。客票系统社会影响巨大,其客票余额(以下简称:余票)信息的公开发布一直是个被热议的话题,尤其在春运期间。

余票信息发布的基本要求是及时准确。同时也是客票系统的核心信息,承载着复杂的业务,数据量大,并发度高。因此,为了构建满足业务需求的余票信息发布系统,有必要制订一些原则策略,并遵循这些原则策略,研究具体的实施方法。

1 余票信息发布策略

1.1 统一指挥调度

在各铁路局的春运组织工作中,全局一盘棋,统一指挥调度。各站段的余票信息发布初期存在获取方式不同、展现内容不同、展现周期不同等问题,不好管理,也不方便旅客。随着客票系统版本升级,席位集中到地区中心,为余票信息发布统一创造了基础条件。随着客运工作质量要求的提高,对余票信息发布工作统一规范、统一规划,便成了必然要求,也是可行的要求。

1.2 准确、及时

面向公众的数据,一定要及时准确。余票信息的及时准确发布为铁路树立信息公开透明的良好形象。

1.3 轻巧、稳定

轻巧指的是不能因为余票信息发布而对客票系统中的其他业务如售票、营销分析等工作造成影响,特别是窗口售票,一刻也不能停顿。

余票信息发布满足了及时、准确的原则,面向公众,服务一旦放开,便会被紧密依赖,受人瞩目,所以一定要稳定可靠。

2 实施方案

2.1 构建集中统一发布平台

具体方案为利用数据复制技术将客票系统中余票信息复制到独立的统一余票信息发布数据库服务器,在此余票信息基础上加工计算出汇总结果,再按需分发到各个车站服务器上,达到了统一数据来源、统一数据内容和统一更新频度的要求。余票信息统一发布平台的系统结构如图1。

系统功能包括统计和分发两大功能。统计功能主要负责余票汇总数据的统计,由数据库存储过程完成。分发功能分成两部分:(1)数据更新功能,由数据库存储过程完成。(2)并发调用功能,由Java程序完成。这样的功能技术结构,可以提高运行效率;界面清晰,可以提高开发效率;可以提高系统稳定性;方便监控数据处理的各个环节。

统一数据发布平台一次统计满足全集团需要,减少了数据统计的运算量,保证了数据的统一性,减轻了维护工作量,也利于跟随业务数据变化,适应客票系统日后的版本升级,能及时发现纰漏和修正算法,保证数据的准确性。

2.2 优化SQL

为保证数据的及时性,需要提高统计程序的效率。统计程序用存储过程来完成,程序效率关键在于SQL(Structured Query Language) 语句的优化。SQL优化技术包括:(1) 创建适当的索引。(2)减少游标的使用。(3)临时表应用优化。

临时表是一种非常方便快捷的SQL语句技术。但在应用临时表做多表关联查询时,需要注意临时表对存储过程预编译计划的影响,在数据量大时,需要采用T-SQL语句技术进行处理,否则存储过程效率低下。临时表在存储过程被保存并编译的时候,并不能确定表里存放多少数据,数据库编译器就按默认规则假设存放100行数据,并据此生成查询计划。而对于余票信息,临时表里往往要存放几千、几万行数据,跟100行数据量存在很大差别。在数据库默认生成并保存的查询计划里,查询引擎采取的最佳策略,可能是对临时表做n遍全表扫描,而不是依据索引去取数据,这样,当临时表里存放几万行记录的时候,n遍全表扫描的性 能比依据索引去取数就会明显低很多。或者随着业务的变化,临时表里面数据有所变化,引起查询引擎重新选择执行计划。针对此问题,使用Sybase数据库特定的T-SQL语句,给予查询引擎优化提示,保证编译时生成并保存的查询计划,执行时也依照进行。这样,不管临时表数据变化跨度如何,查询计划都是稳定的,性能不会陡降。

经过优化,只要10 s就统计合并完广州铁路集团所有余票数据的效率,而且性能稳定。

2.3 数据库间组成透明访问网络

该系统由一个中心服务器和多个车站服务器组成。车站服务器利用车站客票主机,中心服务器则利用一台单独主机承担,跟客票系统主应用分开,称为余票发布平台,其数据复制自客票系统,由它统计生成余票汇总数据,分发到各车站服务器上。各车站电子屏连接车站服务器查询余票结果。

这些服务器之间组成一个可远程透明访问的网络。在中心服务器上,可往车站服务器上的数据表远程透明写入最新数据。这种多数据库服务器之间的直连,避免了多级应用程序间的连接。

2.4 并行分发数据

中心服务器向多个车站服务器分发数据时,如果采取发完一个车站再发下一个车站的串行方式,则存在时延较长,如果中间某站网络质量或者某个站群服务器性能方面出现问题,后续处理均受影响,整个运行间隔将不可控。一台服务器停机,会引起整个集团余票数据分发终止。

所以在系统开发时,引入了多线程技术,对多个站群服务器同时分发,不仅性能好,而且保证局部故障不影响全局,取得了很好的效果。

表1 考察某段时间内分发整理操作2 000次

由表1可见,并行工作耗时只有13.4 s(最大值),如果对所有服务器串行处理,则需要85.1 s,存在6倍以上的差距。

2.5 确保容错

为避免运行分发程序的机器出现停机故障而带来整个集团余票信息数据不能更新,是保证应用程序稳定性。分发程序用Java语言编写,除了靠Java虚拟机来保证稳定外,还利用监视进程、自动重启等编程技术加强可靠运行。另外,还应用双机并行技术,利用两台机器分别运行分发程序,间隔定为2 min,并错开1 min启动,从而使得分发间隔定为1 min ,但实际上是两个程序并行,各自间隔2 min。当一台机故障时,另外一台还在运行,数据刷新间隔从1 min增加到2 min,对业务基本没有影响。这样就实现了冗余。

2.6 监控性能和核对数据

为了监控数据的统计和分发效率,便于发现问题及时定位故障,对中心级统计汇总、向车站分发数据、维护车站基础数据等等各环节实施了连续监控。还有,不仅在数据库一级记录了各环节运行日志,在操作系统一级也记录了分发程序的运行日志,以方便故障查找。

另外,余票信息形成流程涉及环节较多,首先是客票系统中动态变化的席位信息,然后由数据库触发机制生成余额信息,再复制成余票发布平台中余额信息,跟着被统计汇总归并为汇总余票信息,最后分发到各站群服务器上。为了及时排除数据不准一类故障,设计了核对数据操作界面,支持层层追查数据,提供给车站维护人员使用。

3 结束语

客票余票信息发布有着重要意义,要统一规划实施并达到好效果,具有较高的挑战性。在每年的春运业务高峰,对客票系统及所有其他客票相关应用都是一个考验,广铁集团余票信息发布系统能轻松应对2010年春运,功能稳定,性能优异,表明它具备良好设计,具有推广价值。

[1]王奇成. Sybase数据库的存储过程性能优化[J]. 铁路计算机应用,2005(3).

猜你喜欢

客票汇总车站
常用缩略语汇总
车站一角
系统抽样的非常规题汇总
浅谈哈尔滨局集团公司客票电子化通道强化与流量监测
中国铁路客票在跨境客运中的互通方案
车站一角
在北京,一个车站的治理有多难
航空公司客票直销的现状与分析
供应商汇总
供应商汇总