悟空-简单就好
.net企业级应用研究

考虑最复杂的情况
开发出最简单的实现


Word文档-资料管理系统!

导航

 

总结大家的发言,期望中的火车新订票系统

1)铁付通:允许允值到帐户

2)预订方式:预订不成功退钱回帐户

3)加入分配规则:解决像春节特殊节日下,优先满足回家的人们

(去年有回去的优先级下降一档、不是回家的优先最低。

 什么流量,根本就是最最基本的技术问题,谈流量者SB)

4)加入用户信用评价体系,并和分配优先级挂钩

5)支持PC、智能手机的订票方式,逐渐减少人工售票点(不会在线订票的人群)

6)目标是:用户可以10分钟内完成预订单(不需要也不提供查余票功能)

              在抢票期内5分钟~24小时给出是否预订成功;

         非抢票期在运输资源出来后1小时内给出是否预订成功。

         节约没有意义的排队、刷屏的国民时间;照顾到需要照顾的人群

              让最基层的老百姓多些满意。

 

(架构图就不画了,估计铁道部相关的人员也不会理睬这个)

***********************************************************

 

 前言:

  最近经常看到买票难,作为搞技术的我TMD的骂一次:

      票会增加吗?总是有人能买到,有人不能买到;

      就不能换个思路设计订票系统。

      要是我是什么什么的来着,早已经实现通过手机短信、网站就能轻松买票了;

      还顺便将手机实名制给实现了。

 

 摘要:

  现有的订票方案问题在哪,

  1)是即时的,需要很多很多计算资源;搞得订票过程耗时

  2)技术难度大:如余票查询、数量扣除锁等,都有很大的架构难度。

  即并行访问根本就不是问题,问题在于单个用户的处理时间过长,

  造成用户在网站“同一资源过程”停留的过长造成的雪崩效应问题。

     最终是:200个用户在A服务器上卡死了,会话时间为20分钟的话,A服务器基本上是挂了。要等监控进程清理,所以才会出现付钱不给票的情况(强制清除进程造成)

  

  我想解决的是:避免浪费国民的时间,老是作那些没有意义的查询,

  直接根据旅客的要求要给有没有票就好了。

  而且,能实现很多很多其它的功能,又没有什么技术难度。

 

 

 

 正文:

 

  不知是我想简单了,还是专家们想复杂了。

 铁道部的专家还停留在线下售票方案中拨不出来;

 线上售票系统简单得多了。
 骂完铁道部后,提供一简单又可行的解决方案。

  查询余票、防止超售、防止黄牛,一般的设计思路是有难度,

  换个思路,TMD太简单的就能搞定。


一、总体方案

 1、正常情况:预订交钱-->后台自动验证规则-->不符合购买限制的钱原路退回-->
-->提醒用户预订成功(但不一定有票)-->运输资源出来,根据先到可先得+优化级的原则分配
-->短信通知用户取票

 2、用户不取票:没有关系,因为铁道部已经收到钱,所以你开车前两小时取即可。
      多方便啊,就不用为了票多走一次车站。

 3、用户退票:春运有人退吗? 平时要是退了,就退吧


二、前台网站设计

 只需要预订,根本不需要查余票什么的。所以很简单的架构就能搞定,甚至不用CDN

 

三、后台设计

 

 预订后,后台慢慢处理,看资源情况增加服务器。即使后台的服务器挂了,前台用户也感觉不出来。
 运输资源出来,看有多少是分配给网上订票的,依规则分配即可。

 这样后台的架构要有多灵活,就可以设计成多灵活。
 后台由验证服务器+分配服务器+取票及跟踪服务器组成。
 具有分配资格的,满足了身份证唯一、已付款、优先级等等要求了;
 而且是一票一票分配的,根本就没有什么复杂的逻辑处理,也没有什么数据库表锁;
 因为能分配的已经满足了锁的要求了,用单线程分配就好了。
 2核的一秒就可以处理1000张票以上。

 

四、可能的问题

 

  1、有存在海量的处理的情况吗? 没有,预订对数据只是增加操作,不需要扣除数量锁表
  2、有峰值压力吗? 没有,预订时要处理的事情很少很少
  3、能不能订到票,心里没底? 预订和抢票,没有区别啊,
  关键一点的是,预订可以有复杂的预计,比如允许自动安排下一趟什么的;
  多灵活啊。也不要做哪些没有意义的重复提交。
  4、如果铁道部的内部人员想作弊,采用什么方式都可能存在作弊

 

 五、优点

 1、能提前10年预订都没有问题,只要铁道部和旅客愿意。将来的目标发展为:个人旅行管理系统
 2、前台轻量,爱怎样扩展就怎样扩展
   3、后台爱怎样处理都行,而且可以很容易监控,有异常还可以人工偷偷处理一下,用户根本感觉不到
 4、实际上这样一套系统上线,在家中买票,要坐车再去取票就可以了。不够铁道部的关系人少了点代理收入。

 

六、@诺贝尔的启发,完善系统如下:


 1、前台部分:
     PC端:由前台预订系统、身证验证子系统、网银子系统、防止入侵子系统、业务监控系统
   智能手机:修改适合手机特点的预订系统
    (前台预计系统很简单,就一般的小公司都没做再来的那一种,就是往数据库里增加记录,不验证不看余票等规则)
 2、后台部分

  订票确权服务器(是否有预计资格)、车票分配服务器、取票通知服务器、业务监控系统、资源管理和分配规则管理系统等组成

 3、结算部分

   另开发结算管理系统,处理帐务、退钱、退票等

 

   经以上分析,结论:用Asp.net+SQL2008 就可以轻松实现。特别是后台,用C#.net 开发绝对是优势。

 

 

posted on 2012-01-12 03:47  新悟空  阅读(6668)  评论(102编辑  收藏  举报