一种提供票务支持的票池中间件的构建、购票及锁票方法_4

文档序号:8488175阅读:来源:国知局
票池服务器工作状态或网络连接异常时,多个哨兵应用服务器采用投票机制,确定新的主票池服务器(提升某个从票池服务器),并在集群中无缝地完成新的主一从结构的建立,并在新的拓扑结构上重新启用读写分离机制。
[0048]6.基于监视器的代理(Agent)机制
本票池中间件,设计并实现了监视器机制,用于完成票务活动中需要第三方(非售方、非买方)参与的自动化操作,以满足特殊的票务活动需求。比如:以某种频率定期地、自动地更新性能计数器;或者在完成电话订票进行车票预售后(尚未付款)能够在提前预定的解锁时刻(如发车前2小时)自动将票据解锁入池;或者网络售票时,在付款超时的情况下,将票据解锁入池,以便重新进行销售。考虑到这些情况下所需要进行的非人工操作,本系统专门设计并实现了基于监视器的代理机制。
[0049]7.分布式缓存机制分布式缓存机制也是本票池中间件的主要内容之一,所有售票客户端,包括窗口售票程序、提供网售功能的Web服务器、用于支持移动APP的应用服务器,在首次连接本票池中间件时,将完成自动的注册处理,以自动生成的GUID的形式唯一标识客户端程序,以便以双工的方式,将非实时的、票务查询所需的数据更新推送至售票客户端,形成基于网络的分布式缓存架构。分布式缓存机制在通信机制的设计上采用了 WCF通信方式,完善地支持HTTP,TCP,Named Pipe,MSMQ, Peer-To-Peer TCP 等协议。
[0050]以上所述为本通信发明的最佳实施例,并非对本通信发明作任何形式上的限制,凡是依据本通信发明的技术实质对以上实例所作的任何简单修改、等同变化与修饰,均仍落入本通信发明的保护范围内。
【主权项】
1.一种提供票务支持的票池中间件构建方法,其特征在于: 搭建单个票池集群;通过构建底层的一个主票池服务器和至少一个从票池服务器,η个中间层的哨兵应用服务器,η为奇数且大于3,至少2个上层的监视器构成主从机制和哨兵机制;所述的票池中间件包括多个票池集群;具体包括如下步骤; 步骤1:在票池集群中采取相应的数据结构表示各类票务数据;将各项票务操作活动的读写属性,在票池中间层的哨兵应用服务器的配置文件中进行配置; 步骤2:在从票池服务器的配置文件中配置主票池服务器的IP地址和端口号,以至少一个底层的从票池服务器对一个主票池服务器的方式进行配置; 步骤3:在至少一个底层的从票池服务器对一个主票池服务器配置基础上,使用η个中间层的哨兵应用服务器对主从票池服务器的监视与管理,η为奇数且大于3 ; 步骤4:设置至少2个上层的监视器检测每个服务器的状态;并向外发布信息;单个票池集群搭建完成,所述的票池中间件包括多个票池集群,每个票池集群有唯一的ID标识,票池中间件构建完成。
2.根据权利要求1所述的一种提供票务支持的票池中间件构建方法,其特征在于:所述的票池集群基于Redis内存数据库作为构建票池的存储基础。
3.根据权利要求1所述的一种提供票务支持的票池中间件构建方法,其特征在于:所述的步骤I中的票池服务器数据结构特征如下: 1.车票信息使用“日期、班次号:座位号”的键值形式进行标识; 2.日期班次有3个集合,使用的键值分别是:“日期:班次号”、“日期:班次号:SaleLocked”、“ 日期:班次号:CommandLocked” ; 其中,“日期:班次号”表示某个日期班次的余票集,“日期:班次号-SaleLocked”表示某个日期班次的售票锁票集,“日期:班次号KommandLocked”表示某个日期班次的管理锁西隹
4.一种利用权利要求3所述票池中间件的购票方法,其特征在于:票池中间件接收售票客户端的票务请求,票池集群之间由VPN互联,票务请求由票池中间件代理服务器进行代理路由,然后定位到票池集群上;票池中间件再完成购票请求,返回购票或查询列表; 具体包括下述步骤: 步骤1:售票客户端首先根据日期、出发和到达站点信息,就近查询分布式缓存,获取到具体的日期班次信息;然后,向票池中间件,发起查询余票的请求,输入数据是出发站点的ID、以及一组日期班次集; 票池中间件根据请求中的票池集群ID,对于请求进行路由,将请求重定位到票池集群中水平分割之后、存储了指定始发站所有票据信息的票池集群,同时将一组日期班次集传入,作为进一步查询余票信息的输入数据; 票池集群将根据输入的日期班次集,逐一地在内存数据库中查找指定班次对应的班次余票集、对应班次的售票锁票集、对应班次的管理锁票集,将所有集合的内容汇总描述指定日期班次集; 步骤2:售票客户端根据票池集群中获取到日期班次集,在本地进行指定座位号、或者随机选座方式,进行购票;对于指定座位号的购票方式,将日期班次集、以及每个日期班次集关联的一个座位号的列表传递给票池集群;对于随机选座方式,指定购票信息,然后将日期班次集、以及每个日期班次集关联的待购张数信息传递给票池集群; 步骤3:票池集群根据售票客户端传入的购票信息,对待购票据进行售票锁票操作;对于指定座位号的购票方式,在接收到日期班次集、以及每个日期班次集关联的一个座位号的列表后,对票池集群中的实时票据进行逐张售卖活动; 对于随机选座方式,票池集群将根据连续优先原则,从低号段开始,为售票客户端请求生成一个座位号列表,对车票进行加锁处理,并将成功锁定的票据,返回给售票客户端;在票池集群中,以会话Sess1n的形式记录每个售票客户端的所有锁票请求,作为下一步售票的依据; 步骤4:售票客户端根据请求继续进行票据的购买或者放弃票据的购买; 步骤5:票池集群将根据售票客户端的请求,逐张进行票据售卖;对于每一张票据,首先将待售车票从相应的日期班次集中移除、从相应的日期班次售票锁票集中移除,完成单张车票的售卖; 步骤6:如果进行售卖活动时锁定成功的票超过了售票锁的时限,自动回到票池中变成待售状态;否则,票池集群将会在售票客户端提交购票请求后,返回给售票客户端完整的、成功购票的列表; 步骤7:锁定成功之后,票池中间件将成功购得的票加入到对应日期班次集的售票锁票集; 步骤8:结束。
5.一种利用权利要求3所述的票池中间件的锁票方法,其特征在于,具体包括下述步骤: 步骤1:管理客户端根据起始站点、日期、班次号、所属票池集群ID查询班次计划;选择要管理的班次计划,所述的班次计划包括日期和班次号标识,查询所有票的状态,包括被售票锁定、被管理锁定、可用、异常;对被售票锁定、被管理锁定和异常状态的票,不进行下一步操作; 步骤2:对于选择指定座位号的管理员请求,指定数目,生成请求的座位号列表,请求票池中间件进行锁定;票池中间件遍历输入座位号列表,逐张进行锁定操作,如锁票不成功,则返回锁定成功的座位号列表,得到管理锁票集; 步骤4:对于随机锁票,票池中间件先查询该班次计划的余票集,遍历余票集,逐张锁定,直至达到指定数目或者余票集遍历结束,同样返回锁定成功的座位号列表;票池中间件以随机的方式选择出指定数据的余票,得到管理锁票集; 步骤5:票池中间件对管理锁票集中的所有票,进行锁定操作;在锁定时,指定锁定时间,并且记录临时锁票的用户姓名; 步骤6:结束。
6.—种利用权利要求5所述的票池中间件的锁票方法,其特征在于:所述的管理客户端的权限包括锁定和解锁票,以管理员锁的形式预留或者放弃预留票。
【专利摘要】本发明提供了一种提供票务支持的票池中间件构建、购票及锁票方法,通过搭建票池集群;构建一个最底层主服务器和多个从服务器,n个中间层的哨兵,至少2个最上层的监视器构成主从机制(Master-Slave)和哨兵机制(Sentinel);本发明通过搭建一种高并发、高可用的健壮的票池中间件,在支持各类票务操作的同时,能够以中间件的形式,适用于各种票务活动场景。
【IPC分类】G06Q10-02, G06F9-44
【公开号】CN104809510
【申请号】CN201510262322
【发明人】桂浩, 马超, 刘浩文, 唐兼善
【申请人】武汉大学
【公开日】2015年7月29日
【申请日】2015年5月21日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1