• 用Asp.net 就能轻松实现铁道部的订票系统


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

    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 开发绝对是优势。

     

  • 相关阅读:
    bzoj3064: Tyvj 1518 CPU监控
    bzoj3272: Zgg吃东西&&3267: KC采花
    bzoj2759: 一个动态树好题
    bzoj4594: [Shoi2015]零件组装机
    bzoj4873: [Shoi2017]寿司餐厅
    bzoj4593: [Shoi2015]聚变反应炉
    codeforces 739E
    bzoj2034: [2009国家集训队]最大收益
    mybatis-generator使用心得
    Linux 各种软件的安装-Jenkins和svn结合
  • 原文地址:https://www.cnblogs.com/fjwuyongzhi/p/2320078.html
Copyright © 2020-2023  润新知