关于互联网机票系统的一点思考

本贴最后更新于 1975 天前,其中的信息可能已经时移世易

前言:

      做了将近一年多的互联网机票。最后半年出差待得一家公司,算是机票服务商里面出票量比较大的,平均每天有3w张以上。业务也算是比较繁多。最后半年的历练也让我对电商型系统有一些思考。前段时间一直在加班忙着上线,没时间总结思考。趁着这段时间,事情不是很多梳理下关于机票的一些东西。

系统接口:

     为什么把接口放在最前面说,相信知道机票业务人都明白,普通的服务商是没有机票数据的,全被中航信把持着。底下的所有下游商都来自中航信(或者其他我不知道的),类似于B2B模式。包括从航班查询到最后的退废所有的数据交互均来自于接口,所以接口很重要。以我目前接触到的来说,算是国内几家比较大的机票服务商都是用webservice作为其基本的数据交换的主要方式,好处不用多说,协议简单,xml。跨平台,很多服务商目前用的有.NET,和java的。由于每查询一次航班貌似需要给钱,所以我接触的这套系统,将航班查询专门做了一套航班查询缓存系统,这套系统使用mongodb,(策略基本都是定时去查询上有服务商数据接口,当然如果上游服务商的航班数据临时发生变化,则会主动推送给下游)然后对外抛出查询接口,供内部使用。这样可以解耦系统,我们在后期做的时候,基本没有理过这块的东西。为我们省去了不少事情。再说说,其他接口,包括下单,支付,退废等等接口都是依赖于webservice服务。对于接口开发,只要现将测试用例写好,合作方接口抛出之后,测试用例能调通,按文档规范开发。开发进展是非常快的。我那时候一天同时和很多家联调接口,在测试用例的帮助下基本上是游刃有余。对于和合作方开发接口主要注意如下事项: http://www.oldcaptain.cc/articles/2013/11/26/1385427974310.html

数据结构: 

数据结构的设计主要依赖于系统业务,还有所有电商系统必不可少的订单库设计。对于机票业务来讲主要包括以下几个场景单程,1、往返程,连程2、成人,儿童,婴儿3、保险。订单数据离不开以上三种数据的随机组合。在设计初期考虑到以上场景,以及航班信息,乘客信息,保险信息,就能很好的设计出适用于全部场景的数据结构。业务无论怎么变化也离不开以上这些内容。考虑到以上业务场景,以及主要业务信息。订单库基本也就基本可以设计出来了。

订单状态:

   主要的订单状态包括:原始,出票中,出票失败,已出票,退票中,退票失败,废票中,废票失败,已废票。大部分和订单有关的系统订单状态的变化也就意味着系统的流转。所以订单状态的流转掌握了,系统大部分流程也就掌握了,基本上所有的需求都是围绕订单状态展开的。

性能的优化:

   关于性能的优化,首先需要考虑系统性能瓶颈在哪里。目前就该系统而言,由于在系统总订单往下走的时候,大部分都需要调接口。调接口速度比较慢的。平均响应时间在3秒以上。在机票量比较大的时候,这个时间还要继续攀升。在性能优化最主要考虑的一个方向就是做缓存,比如在文章一开始提到的航班缓存系统,就是为了解决这样的问题。在实际系统业务中,有很多流程可以优化,尽量避免调接口,那么可以优化流程。有些地方则不能避免,比如实时获取机票价格,机建,燃油接口。则在下单的时候,需要实时获取价格。那么这个时候只能祈祷,合作方接口能快一点了,呵呵。

Dao层的设计:

   关于dao层的设计,是我看到这个系统最烂的地方。采用的hibernate,不是说hibernate烂,而是因为hibernate入门门槛比较高,如果系统开发人员变动比较大,再加上开发人员技能参差不齐。那么这将是个噩梦。各种面向对象的数据操作,以及sql充斥在代码里。让人实在不能理解hibernate到底是不是面向对象的dao层框架。

异常处理:

         异常处理也是系统里面一个重要的环节。异常当然也分为很多种。这里将不一一赘述。主要讲异常和事务的配合处理使用,最经典的错误如下

http://www.oldcaptain.cc/articles/2013/11/25/1385372657318.html。系统采用了框架后,大部分事务都交给框架来处理,但是如果异常处理不好,经常会有莫名其妙的问题出现。一般情况下,在业务层发生的异常,需要一层一层往上抛,在action中进行处理。然后针对异常来判断是否对用户显示。

日志:

      日志的处理也同样很重要,特别当上了测试环境,或者生产环境,如果日志信息打的不够全面。出了错之后,找起来,那绝对是噩梦。所以在开发中,没事加几行日志,绝对是个很好的编程习惯。

总结:碎碎念了这么多,想到哪里,就写到哪里,并不是很系统。由于没有具体的业务场景,所以只能将系统中几个,我认为比较重要,核心的部分拿出来捋一捋。应该能说明一些电商型系统的一些问题。个人水平问题,请各位看官将就着看。

还有最进博客比较慢,找时间得好好看下。~~~~(>_<)~~~~ 

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone

    没搞过电商的,看了表示原来如此