2024年3月29日发(作者:戎长娟)
专栏:互联网业务
支持高并发处理的新型票务应用系统设计与实现
林 克’,罗 喧’,李 凌 ,李豫
(1.中国电信股份有限公司广州研究院广州510630;
2.中国电信股份有限公司广东分公司广州510180)
摘要:基于移动互联网的票务应用服务,是近年来兴起的一个电子商务前沿分支,向用户提供便捷的查询、
选座、订票、支付及取票服务。针对此类服务在业务和用户高并发过程中暴露的系统性能瓶颈问题,提出一种高
效、可行的解决方案,实现高并发订票压力下代理系统对外部原生票务系统的过载压力保护;从而设计出一种新
型的票务应用系统,以减少高并发压力下对原生票务系统的访问流量冲击,降低原生票务系统的访问压力。
关键词:高并发;票务应用系统;移动互联网
doi:10.1 1959/j.issn.1000—0801.2015278
Design and Implementation of the New Ticketing Application
System with High—Concurrency Supported
Lin Ke ,Luo Xuan ,Li Lingz,Li Yu
(1.Guangzhou Research Insittute of China Telecom Co.,Ltd.,Guangzhou 5 10630,China;
2.Guangdong Branch of China Telecom Co.,Ltd.,Guangzhou 510180,China)
Abstract:Ticketing application based on mobile internet service is an advanced branch of electronic commerce
rising in recent yeam.It aims to provide convenient services to the user such as query,seat selection,ticket
booking,payment and collection.The system performance bottleneck of such services during the high concurrent
process was focused on.A new kind of ticketing application system was proposed,which reduced the accessing
impact and the business pressure to the native ticketing system.
Key words:high—concurrency,ticketing application system,mobile internet
1 引言
随着移动互联网的发展.登录网络线上买票线下消费
成为新的移动互联网应用热点。此类移动电子票务应用向
用户提供票务相关信息查询、提前选座订票、远程在线支
付和便捷取票验票等功能,同时实现运营管理的信息化、
确保用户信息及票据的安全性。其覆盖面广,从旅游景点 的020(online to offline,线上到线下)型电子商务已逐渐
收稿日期:2015—08—23;修回日期:2015—09—14
基金项目:广东省“2013年信息产业发展专项资金现代信息服务业专项”基金资助项目“广东省物联网应用孵化扶持基地建设”
Foudation Item:Guangdong Province “2013 modern information service industry proiects of information industw development fund8”funded
projects—Guangdong Province IOT Applications Suppo ̄and Incubator Base Construction Project
论文引用格式:林克,罗喧,李凌等.支持高并发处理的新型票务应用系统设计与实现.电信科学,2015278
Lin K,Luo X,Li L,et .Design and implementation of the new ticketing application system with hi【sh.cOncaITencv suppo ̄ed
,
Telecommunications Science,2015278
麓———隧
J 1
专栏:互联网监务
监控各代理票务系统发往原生票务系统的连接请求
判断设定时间内发往同一原
生票务系统的连接请求次数是否超过
设定阈值
望 囊妻
是
拦截发往原生票务系统的连接请求,并启动过载保护
模式
查篙 存在所请求的座位图否:二 ———一
申请获取访问原生票
务系统的令牌
判断所请求的座位图是否可用
———
—、———一
●是
将在线座位图缓存内存储的所请求的座位图反馈给发
起该连接请求的用户
响应于对令牌的获取,
自原生票务系统获
取所请求的座位图,
以基于所获取的座位
图进行座位的选取
图4在线选座过程的高并发处理操作机制示意
系统接收到的连接请求为准,计算该请求倒推设定时间内
的发往同一原生票务系统的连接次数是否超过设定阈值。
反馈给发起该连接请求的用户。
(¥416)申请获取访问原生票务系统的令牌。
(¥418)响应于对令牌的获取.从原生票务系统获取所
(S406)拦截发往原生票务系统的连接请求,并启动过
载保护模式;具体地,如果超过设定阈值,则认为现在对同
一
请求的座位图。以基于所获取的座位图进行座位的选取;
具体地。当多个连接请求均申请访问同一个原生票务系统
内针对同一座位图的令牌时,只有一个连接能够获取到访
问令牌.例如.可以根据各个连接请求访问时间的先后顺
序确定能够获取访问令牌的连接请求。
在该实施案例中,在设定时间内如果访问同一个原生
票务系统的连接请求数过高(如超过设定阈值),则由过载
保护装置对这些连接请求进行拦截,根据在线座位图缓存
原生票务系统的访问过于密集,可能会造成原生票务系
统的瘫痪。因此需要启动过载保护模式,即不能直接将连
接请求透传至原生票务系统,而是根据下述情形分别进行
处理。
(¥408)将连接请求透传至原生票务系统。
(¥410)响应于对连接请求的拦截,查询在线座位图缓
存内是否存在所请求的座位图,如果存在,则转步骤(¥412),
否则,转步骤(¥416)。
内存储的所请求的座位图的存活时间或者直接获取该缓
存的座位图,或者获取/等待令牌以自原生票务系统获取
相应的座位图。这样既保证了用户能够及时获取最新的座
位图,同时也降低了对原生票务系统的访问压力。
在步骤(¥418)之后,响应于对令牌的获取,在从原生
(¥412)根据所请求的座位图的存活时间判断所请求
的座位图是否可用,如果可用,则转步骤(¥414),否则,转
步骤(¥416)。具体地,该存活时间是个大于零的数,具体数
值可以由用户设置。如果查询到的存活时间大于零,则表明
缓存内所请求的座位图可用,否则表明缓存内所请求的座
位图不可用。
票务系统获取所请求的座位图后,将获取的座位图更新到
在线座位图缓存中,设置存活时间,并启动倒计时。这样,
如果在过载保护模式下且相应座位图的存活时间大于0,
(¥414)将在线座位图缓存内存储的所请求的座位图
电信科
则其他请求同一座位图的连接请求可以直接从在线座位
图缓存中获取相应的座位图。
进一步地,在步骤(S4l6)之后,如果连接请求未获取
到访问原生票务系统的令牌,则未获取到令牌的连接请求
图缓存内,因此,在线座位图缓存内存储被过载保护的原
生票务系统的各个座位图均为最新状态的座位图.可以直
接启动对相应座位图的存活时间的倒计时。
在步骤(¥416)之后,对令牌进行获取,同时生成该令
进入休眠状态,等待在线座位图缓存内所请求的座位图的
更新或等待获取令牌。此时,未获取到访问原生票务系统
令牌的连接可以同时检测是否获取令牌以及在线座位图
牌的超时时间,以便在该令牌超时时释放该令牌。
4.3过载保护模块工作流程
该机制实施的核心点,在于过载保护模块的正常运行
缓存内所请求的座位图是否更新,如果先获取令牌则直接
以及与周边相关模块或系统的协作。接下来,仍以电影票
到原生票务系统获取实时的座位图,如果先检测到缓存的
更新,则直接到在线座位图缓存中读取所请求的座位图,
这样可以显著提高在线预订座位的实时性。
订购业务为例,通过具体实例对系统高并发处理的技术方
案进行进一步说明。
正常压力状态下售票代理票务系统连往原生票务系
在步骤(¥408)中,连接请求被透传至原生票务系统,
统的连接在阈值的范围内,过载保护模块处在请求透传
在选定座位后.将所请求的座位图更新至在线座位图缓存
中。这样,如果后续连接请求被过载保护,在存活时间有效
的前提下,这些连接请求可以直接到在线座位图缓存内读
取所请求的座位图,既提高了预订座位的实时性,又避免
了对原生票务系统造成较大的冲击。
的状态,将从业务代理票务系统的请求直接发往目标的
外部原生票源系统,此时相当于座位图缓存数据的存活
时间为0。
当并发用户集中发起订票致使售票代理票务系统连
往原生票务系统的连接超出了阈值范围,过载保护模块启
动工作,以电影票售票代理系统为例,其流程如图5所示。
步骤1 用户发起的查看座位图的请求发送给售票
代理票务系统,在并发访问过程中,每个用户对应一个工
作线程,每个工作线程均企图发起对原生票务系统的获取
在步骤(¥406)中,过载保护模式启动,设置在线座位
图缓存内被过载保护的原生票务系统的各座位图的存活
时间,并启动倒计时。由于在连接请求不被拦截时,每次访
问完原生票务系统都将所请求的座位图更新到在线座位
图5过载保护模块的运行流程
专栏:互联网业务
座位图的连接请求,这些连接请求被过载保护模块拦截。
步骤2过载保护模块启动查询座位图缓存,座位图
缓存池中如果存在该电影某影厅某个播放场次(排期)座
位图,并在缓存数据的存活时间T内,直接返回缓存中的
座位图。否则,转到步骤3。在此,在存活时间内的座位图可
能不是最新的排期座位图,因此存在一种可能,用户看到
的可选座位实际上已经卖出。然而,这是一种更优的做法。
假设排期缓存存活时间为 ,缓存生效减少了原生票务系
统的访问压力,使之保持正常工作状态。原生票务系统繁
忙拥塞.即便是每次调用均去原生票务系统,并不可能得
到马上的反馈.在原生票务系统拥塞访问的时问 ’很可
能会大于 ;代理系统仍然只能得到 ’时间之前的座位
图。更差的一种情况是,由于访问请求太多,原生的票务系
统直接崩溃。
步骤3去排期座位图访问令牌池申请访问令牌,由
于该座位图可能多个用户同时申请访问,每个用户将产生
一
个工作线程.同一个座位图的令牌为多台机器多个工作
线程(每个连接一个线程)同时竞争,同一时间仅仅有一个
工作线程能够获得座位图的访问令牌。成功生成该座位图
的令牌的同时,还生成排期座位图访问令牌的超时时间。
当获取令牌的工作线程不能在超时时间内完成更新排期
座位图的更新操作时,该令牌将被释放。
步骤4获取令牌的唯一线程去原生票务系统获取该
排期的最新可售的座位信息,每个排期仅在座位图失效时
有一个线程能够获得令牌作为代表访问原生票务系统。此
时外部票务系统查询座位图的最大的请求连接数将是票
务系统提供的所有排期总数:例如,原生票务系统当前一
共提供100个电影影厅播放场次(排期),在排期座位图缓
存生效的时候,最多一个排期有一个连接去原生票务系统
更新座位图数据,于是原生票务系统最多可能有100个请
求连接过来更新排期座位图数据。
步骤5获取令牌的唯一线程将座位图信息更新到代
理票务系统缓存之后释放(删除)令牌。
步骤6竞争不到令牌的线程进入休眠状态等待,直
到数据被更新或者令牌被释放。
5 系统性能优化结果分析
针对电影票订购类业务.本文提出的新型系统经过上
述优化处理.在可售座位查询请求中与外部原生票务系统
间访问压力的关系如图6、图7所示。
用户并发压力
图6座位图超时时间与售票代理系统用户并发压力关系
图7原生票务系统并发用户压力与售票代
理系统的并发用户压力关系
并发压力在阈值以内,座位图超时时间为0,此时排期
座位图的查询请求直接转发给外部票务系统。当并发用户
压力达到某个阈值时,可售座位信息的超时时间自动置位
为 .过载保护的机制开始生效。
每个排期仅在座位图失效时有一个线程作为代表访
问外部票务系统。此时外部票务系统查询座位图的最大的
请求连接数将是票务系统提供的排期总数。
在加载过载保护模块后.原生票务系统并发用户压力
与售票代理系统的并发用户压力关系如图7所示,随着用
户并发压力的增大,原生票务系统的访问压力也随之增
大,到了过载保护生效的时候.访问压力渐渐趋近于原生
票务系统提供的排期总数。
在实际的项目实施中,本文对新型系统的性能进行了
全面的压力测试。从图8可以看出,经过高并发处理优化后
的新型票务应用系统,在0.1 s、1 s和2.5 s这几档不同的响
■一查座接口
_选座接口
>1 800
1 800-
>600
500500
600_
。
■。i;2
普通系统I新型系统l普通系统I新型系统l普通系统I新型系统
<O 1 s l <1 s l <2 5 s
图8系统性能测试结果对比
2
卯
O
2024年3月29日发(作者:戎长娟)
专栏:互联网业务
支持高并发处理的新型票务应用系统设计与实现
林 克’,罗 喧’,李 凌 ,李豫
(1.中国电信股份有限公司广州研究院广州510630;
2.中国电信股份有限公司广东分公司广州510180)
摘要:基于移动互联网的票务应用服务,是近年来兴起的一个电子商务前沿分支,向用户提供便捷的查询、
选座、订票、支付及取票服务。针对此类服务在业务和用户高并发过程中暴露的系统性能瓶颈问题,提出一种高
效、可行的解决方案,实现高并发订票压力下代理系统对外部原生票务系统的过载压力保护;从而设计出一种新
型的票务应用系统,以减少高并发压力下对原生票务系统的访问流量冲击,降低原生票务系统的访问压力。
关键词:高并发;票务应用系统;移动互联网
doi:10.1 1959/j.issn.1000—0801.2015278
Design and Implementation of the New Ticketing Application
System with High—Concurrency Supported
Lin Ke ,Luo Xuan ,Li Lingz,Li Yu
(1.Guangzhou Research Insittute of China Telecom Co.,Ltd.,Guangzhou 5 10630,China;
2.Guangdong Branch of China Telecom Co.,Ltd.,Guangzhou 510180,China)
Abstract:Ticketing application based on mobile internet service is an advanced branch of electronic commerce
rising in recent yeam.It aims to provide convenient services to the user such as query,seat selection,ticket
booking,payment and collection.The system performance bottleneck of such services during the high concurrent
process was focused on.A new kind of ticketing application system was proposed,which reduced the accessing
impact and the business pressure to the native ticketing system.
Key words:high—concurrency,ticketing application system,mobile internet
1 引言
随着移动互联网的发展.登录网络线上买票线下消费
成为新的移动互联网应用热点。此类移动电子票务应用向
用户提供票务相关信息查询、提前选座订票、远程在线支
付和便捷取票验票等功能,同时实现运营管理的信息化、
确保用户信息及票据的安全性。其覆盖面广,从旅游景点 的020(online to offline,线上到线下)型电子商务已逐渐
收稿日期:2015—08—23;修回日期:2015—09—14
基金项目:广东省“2013年信息产业发展专项资金现代信息服务业专项”基金资助项目“广东省物联网应用孵化扶持基地建设”
Foudation Item:Guangdong Province “2013 modern information service industry proiects of information industw development fund8”funded
projects—Guangdong Province IOT Applications Suppo ̄and Incubator Base Construction Project
论文引用格式:林克,罗喧,李凌等.支持高并发处理的新型票务应用系统设计与实现.电信科学,2015278
Lin K,Luo X,Li L,et .Design and implementation of the new ticketing application system with hi【sh.cOncaITencv suppo ̄ed
,
Telecommunications Science,2015278
麓———隧
J 1
专栏:互联网监务
监控各代理票务系统发往原生票务系统的连接请求
判断设定时间内发往同一原
生票务系统的连接请求次数是否超过
设定阈值
望 囊妻
是
拦截发往原生票务系统的连接请求,并启动过载保护
模式
查篙 存在所请求的座位图否:二 ———一
申请获取访问原生票
务系统的令牌
判断所请求的座位图是否可用
———
—、———一
●是
将在线座位图缓存内存储的所请求的座位图反馈给发
起该连接请求的用户
响应于对令牌的获取,
自原生票务系统获
取所请求的座位图,
以基于所获取的座位
图进行座位的选取
图4在线选座过程的高并发处理操作机制示意
系统接收到的连接请求为准,计算该请求倒推设定时间内
的发往同一原生票务系统的连接次数是否超过设定阈值。
反馈给发起该连接请求的用户。
(¥416)申请获取访问原生票务系统的令牌。
(¥418)响应于对令牌的获取.从原生票务系统获取所
(S406)拦截发往原生票务系统的连接请求,并启动过
载保护模式;具体地,如果超过设定阈值,则认为现在对同
一
请求的座位图。以基于所获取的座位图进行座位的选取;
具体地。当多个连接请求均申请访问同一个原生票务系统
内针对同一座位图的令牌时,只有一个连接能够获取到访
问令牌.例如.可以根据各个连接请求访问时间的先后顺
序确定能够获取访问令牌的连接请求。
在该实施案例中,在设定时间内如果访问同一个原生
票务系统的连接请求数过高(如超过设定阈值),则由过载
保护装置对这些连接请求进行拦截,根据在线座位图缓存
原生票务系统的访问过于密集,可能会造成原生票务系
统的瘫痪。因此需要启动过载保护模式,即不能直接将连
接请求透传至原生票务系统,而是根据下述情形分别进行
处理。
(¥408)将连接请求透传至原生票务系统。
(¥410)响应于对连接请求的拦截,查询在线座位图缓
存内是否存在所请求的座位图,如果存在,则转步骤(¥412),
否则,转步骤(¥416)。
内存储的所请求的座位图的存活时间或者直接获取该缓
存的座位图,或者获取/等待令牌以自原生票务系统获取
相应的座位图。这样既保证了用户能够及时获取最新的座
位图,同时也降低了对原生票务系统的访问压力。
在步骤(¥418)之后,响应于对令牌的获取,在从原生
(¥412)根据所请求的座位图的存活时间判断所请求
的座位图是否可用,如果可用,则转步骤(¥414),否则,转
步骤(¥416)。具体地,该存活时间是个大于零的数,具体数
值可以由用户设置。如果查询到的存活时间大于零,则表明
缓存内所请求的座位图可用,否则表明缓存内所请求的座
位图不可用。
票务系统获取所请求的座位图后,将获取的座位图更新到
在线座位图缓存中,设置存活时间,并启动倒计时。这样,
如果在过载保护模式下且相应座位图的存活时间大于0,
(¥414)将在线座位图缓存内存储的所请求的座位图
电信科
则其他请求同一座位图的连接请求可以直接从在线座位
图缓存中获取相应的座位图。
进一步地,在步骤(S4l6)之后,如果连接请求未获取
到访问原生票务系统的令牌,则未获取到令牌的连接请求
图缓存内,因此,在线座位图缓存内存储被过载保护的原
生票务系统的各个座位图均为最新状态的座位图.可以直
接启动对相应座位图的存活时间的倒计时。
在步骤(¥416)之后,对令牌进行获取,同时生成该令
进入休眠状态,等待在线座位图缓存内所请求的座位图的
更新或等待获取令牌。此时,未获取到访问原生票务系统
令牌的连接可以同时检测是否获取令牌以及在线座位图
牌的超时时间,以便在该令牌超时时释放该令牌。
4.3过载保护模块工作流程
该机制实施的核心点,在于过载保护模块的正常运行
缓存内所请求的座位图是否更新,如果先获取令牌则直接
以及与周边相关模块或系统的协作。接下来,仍以电影票
到原生票务系统获取实时的座位图,如果先检测到缓存的
更新,则直接到在线座位图缓存中读取所请求的座位图,
这样可以显著提高在线预订座位的实时性。
订购业务为例,通过具体实例对系统高并发处理的技术方
案进行进一步说明。
正常压力状态下售票代理票务系统连往原生票务系
在步骤(¥408)中,连接请求被透传至原生票务系统,
统的连接在阈值的范围内,过载保护模块处在请求透传
在选定座位后.将所请求的座位图更新至在线座位图缓存
中。这样,如果后续连接请求被过载保护,在存活时间有效
的前提下,这些连接请求可以直接到在线座位图缓存内读
取所请求的座位图,既提高了预订座位的实时性,又避免
了对原生票务系统造成较大的冲击。
的状态,将从业务代理票务系统的请求直接发往目标的
外部原生票源系统,此时相当于座位图缓存数据的存活
时间为0。
当并发用户集中发起订票致使售票代理票务系统连
往原生票务系统的连接超出了阈值范围,过载保护模块启
动工作,以电影票售票代理系统为例,其流程如图5所示。
步骤1 用户发起的查看座位图的请求发送给售票
代理票务系统,在并发访问过程中,每个用户对应一个工
作线程,每个工作线程均企图发起对原生票务系统的获取
在步骤(¥406)中,过载保护模式启动,设置在线座位
图缓存内被过载保护的原生票务系统的各座位图的存活
时间,并启动倒计时。由于在连接请求不被拦截时,每次访
问完原生票务系统都将所请求的座位图更新到在线座位
图5过载保护模块的运行流程
专栏:互联网业务
座位图的连接请求,这些连接请求被过载保护模块拦截。
步骤2过载保护模块启动查询座位图缓存,座位图
缓存池中如果存在该电影某影厅某个播放场次(排期)座
位图,并在缓存数据的存活时间T内,直接返回缓存中的
座位图。否则,转到步骤3。在此,在存活时间内的座位图可
能不是最新的排期座位图,因此存在一种可能,用户看到
的可选座位实际上已经卖出。然而,这是一种更优的做法。
假设排期缓存存活时间为 ,缓存生效减少了原生票务系
统的访问压力,使之保持正常工作状态。原生票务系统繁
忙拥塞.即便是每次调用均去原生票务系统,并不可能得
到马上的反馈.在原生票务系统拥塞访问的时问 ’很可
能会大于 ;代理系统仍然只能得到 ’时间之前的座位
图。更差的一种情况是,由于访问请求太多,原生的票务系
统直接崩溃。
步骤3去排期座位图访问令牌池申请访问令牌,由
于该座位图可能多个用户同时申请访问,每个用户将产生
一
个工作线程.同一个座位图的令牌为多台机器多个工作
线程(每个连接一个线程)同时竞争,同一时间仅仅有一个
工作线程能够获得座位图的访问令牌。成功生成该座位图
的令牌的同时,还生成排期座位图访问令牌的超时时间。
当获取令牌的工作线程不能在超时时间内完成更新排期
座位图的更新操作时,该令牌将被释放。
步骤4获取令牌的唯一线程去原生票务系统获取该
排期的最新可售的座位信息,每个排期仅在座位图失效时
有一个线程能够获得令牌作为代表访问原生票务系统。此
时外部票务系统查询座位图的最大的请求连接数将是票
务系统提供的所有排期总数:例如,原生票务系统当前一
共提供100个电影影厅播放场次(排期),在排期座位图缓
存生效的时候,最多一个排期有一个连接去原生票务系统
更新座位图数据,于是原生票务系统最多可能有100个请
求连接过来更新排期座位图数据。
步骤5获取令牌的唯一线程将座位图信息更新到代
理票务系统缓存之后释放(删除)令牌。
步骤6竞争不到令牌的线程进入休眠状态等待,直
到数据被更新或者令牌被释放。
5 系统性能优化结果分析
针对电影票订购类业务.本文提出的新型系统经过上
述优化处理.在可售座位查询请求中与外部原生票务系统
间访问压力的关系如图6、图7所示。
用户并发压力
图6座位图超时时间与售票代理系统用户并发压力关系
图7原生票务系统并发用户压力与售票代
理系统的并发用户压力关系
并发压力在阈值以内,座位图超时时间为0,此时排期
座位图的查询请求直接转发给外部票务系统。当并发用户
压力达到某个阈值时,可售座位信息的超时时间自动置位
为 .过载保护的机制开始生效。
每个排期仅在座位图失效时有一个线程作为代表访
问外部票务系统。此时外部票务系统查询座位图的最大的
请求连接数将是票务系统提供的排期总数。
在加载过载保护模块后.原生票务系统并发用户压力
与售票代理系统的并发用户压力关系如图7所示,随着用
户并发压力的增大,原生票务系统的访问压力也随之增
大,到了过载保护生效的时候.访问压力渐渐趋近于原生
票务系统提供的排期总数。
在实际的项目实施中,本文对新型系统的性能进行了
全面的压力测试。从图8可以看出,经过高并发处理优化后
的新型票务应用系统,在0.1 s、1 s和2.5 s这几档不同的响
■一查座接口
_选座接口
>1 800
1 800-
>600
500500
600_
。
■。i;2
普通系统I新型系统l普通系统I新型系统l普通系统I新型系统
<O 1 s l <1 s l <2 5 s
图8系统性能测试结果对比
2
卯
O