论坛首页 Java企业应用论坛

如果让你设计铁道部购票网站,你怎么做

浏览 27321 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-01-12  
zmcsut 写道
linliangyi2007 写道
zmcsut 写道
12306和淘宝比?
有可比性吗?
一个一年用几天的东西,想按淘宝的规模弄。都疯了吧。


第一,虽然这个系统一年就几天高峰期,但是其重要性不言而喻,动车和高铁都投资按万亿计算,区区一个网站就舍不得投资了。更多原因是领导不懂IT,不重视,认为系统简单,随便找个小公司搞定就好。

第二,如果真要节省成本,那简单,找个B2C的电子商务网站合作,零时租用对方的服务(包括软硬件,带宽等),这样既有保障有节省。但这样可就少了拿回扣的发财机会了,领导们怎么可能答应!!

不理解第2点中的回扣问题。难道B2C网站不懂得给回扣。


这个不是重点,重点是外包的款项肯定比自建的拨款少的多,自建要购买很多的硬件,带宽,这个口子大啊~~花钱名正言顺啊....
0 请登录后投票
   发表时间:2012-01-12  
linliangyi2007 写道
光顾着抱怨,有点跑题了。下面言归正传,让我们从系统设计角度来看看要如何设计流量如此之大的东东。

本人觉得系统架构的关键要有3大部分

1.排队等待子系统
  
  如此大的并发量不是简单的群集能承受的,因此,系统需要一个缓冲区,就好比在窗口面前排队一样,在进入订票流程前,应该有个排队处理系统,简单的页面,让电脑面前的用户知道自己的请求已经提交,系统慢,大概还需要几分钟才能受理你的订票请求。

  如果大家玩过wow,下过魔兽的副本,就知道有个副本排队系统了,这样也一样。
  此系统需要大量的HTTP前端服务器,接受用户请求,但不需要很复杂的业务逻辑。

2.订票流程处理子系统

   进入该子系统的用户开始正式的订票流程,如,填写各种表单。该子系统关键在于需要一张表,用来记录用户已经订出的票,扣除系统剩余票数,这样不至于用户交钱了票没了。只有用户取消订票时,将票退回系统。
   同时,该系统应该记录用户在订票流程的日志。


3.订票确认与分发子系统
   用户完成所有信息填写后,进入该子系统,该系统负责最终登记用户的订票信息,并正式的将票据出售,同时从用户的资金账户中扣除钱款,并在系统中锁定票号。
    用户将从这个系统中,最终确认自己的购买的票据时间,票据,出发到达等信息,即提供最终票务状态的查询。


剩下的具体设计,如,数据库集群设计,负载均衡设计,动态服务扩展设计,高可用性设计,高速缓存设计,这些议题大家平时都在讨论,这里就不多说了。

大方向设计出来了,小细节的可选方案就灵活了。我就不信这样的设计会出现钱扣了,票没出的情况...


尼玛,再次抱怨铁道部购票网站设计就是无脑的坑爹货!

排队不如撞大运,否则全让自动登录给抢了。
不敢相信第2、3点会没有?有证据吗?
感觉12306就是按第2、第3点来的,也就是这2步让人不太舒服。


0 请登录后投票
   发表时间:2012-01-12  
linliangyi2007 写道
zmcsut 写道
linliangyi2007 写道
zmcsut 写道
12306和淘宝比?
有可比性吗?
一个一年用几天的东西,想按淘宝的规模弄。都疯了吧。


第一,虽然这个系统一年就几天高峰期,但是其重要性不言而喻,动车和高铁都投资按万亿计算,区区一个网站就舍不得投资了。更多原因是领导不懂IT,不重视,认为系统简单,随便找个小公司搞定就好。

第二,如果真要节省成本,那简单,找个B2C的电子商务网站合作,零时租用对方的服务(包括软硬件,带宽等),这样既有保障有节省。但这样可就少了拿回扣的发财机会了,领导们怎么可能答应!!

不理解第2点中的回扣问题。难道B2C网站不懂得给回扣。


这个不是重点,重点是外包的款项肯定比自建的拨款少的多,自建要购买很多的硬件,带宽,这个口子大啊~~花钱名正言顺啊....

你确认?外包IBM等公司绝对比自建项目拨款多的多,压根不是一个级别。
0 请登录后投票
   发表时间:2012-01-12  
zmcsut 写道
linliangyi2007 写道
zmcsut 写道
linliangyi2007 写道
zmcsut 写道
12306和淘宝比?
有可比性吗?
一个一年用几天的东西,想按淘宝的规模弄。都疯了吧。


第一,虽然这个系统一年就几天高峰期,但是其重要性不言而喻,动车和高铁都投资按万亿计算,区区一个网站就舍不得投资了。更多原因是领导不懂IT,不重视,认为系统简单,随便找个小公司搞定就好。

第二,如果真要节省成本,那简单,找个B2C的电子商务网站合作,零时租用对方的服务(包括软硬件,带宽等),这样既有保障有节省。但这样可就少了拿回扣的发财机会了,领导们怎么可能答应!!

不理解第2点中的回扣问题。难道B2C网站不懂得给回扣。


这个不是重点,重点是外包的款项肯定比自建的拨款少的多,自建要购买很多的硬件,带宽,这个口子大啊~~花钱名正言顺啊....

你确认?外包IBM等公司绝对比自建项目拨款多的多,压根不是一个级别。


他要是真外包了,就不是现在这个样了,这么大系统,找个都没听说的公司做,做了上千万,还这样...
0 请登录后投票
   发表时间:2012-01-12  
公司现在接的项目一百多万,数年前类似的项目IBM接上千万,年维护费300万+
0 请登录后投票
   发表时间:2012-01-12  
zmcsut 写道
linliangyi2007 写道
光顾着抱怨,有点跑题了。下面言归正传,让我们从系统设计角度来看看要如何设计流量如此之大的东东。

本人觉得系统架构的关键要有3大部分

1.排队等待子系统
  
  如此大的并发量不是简单的群集能承受的,因此,系统需要一个缓冲区,就好比在窗口面前排队一样,在进入订票流程前,应该有个排队处理系统,简单的页面,让电脑面前的用户知道自己的请求已经提交,系统慢,大概还需要几分钟才能受理你的订票请求。

  如果大家玩过wow,下过魔兽的副本,就知道有个副本排队系统了,这样也一样。
  此系统需要大量的HTTP前端服务器,接受用户请求,但不需要很复杂的业务逻辑。

2.订票流程处理子系统

   进入该子系统的用户开始正式的订票流程,如,填写各种表单。该子系统关键在于需要一张表,用来记录用户已经订出的票,扣除系统剩余票数,这样不至于用户交钱了票没了。只有用户取消订票时,将票退回系统。
   同时,该系统应该记录用户在订票流程的日志。


3.订票确认与分发子系统
   用户完成所有信息填写后,进入该子系统,该系统负责最终登记用户的订票信息,并正式的将票据出售,同时从用户的资金账户中扣除钱款,并在系统中锁定票号。
    用户将从这个系统中,最终确认自己的购买的票据时间,票据,出发到达等信息,即提供最终票务状态的查询。


剩下的具体设计,如,数据库集群设计,负载均衡设计,动态服务扩展设计,高可用性设计,高速缓存设计,这些议题大家平时都在讨论,这里就不多说了。

大方向设计出来了,小细节的可选方案就灵活了。我就不信这样的设计会出现钱扣了,票没出的情况...


尼玛,再次抱怨铁道部购票网站设计就是无脑的坑爹货!

排队不如撞大运,否则全让自动登录给抢了。
不敢相信第2、3点会没有?有证据吗?
感觉12306就是按第2、第3点来的,也就是这2步让人不太舒服。




首先,直接将第二块子系统暴露在最前头,这样的设计就是最大的问题,我就假设有n个用户同时填好表单,要提交,系统怎么办。。。要扣款,要出票,锁表 or 同步?!

其次,我怀疑(仅是怀疑),这个系统连2,3部都没分,否则如何解释钱扣了,票没订到的情况!!!


0 请登录后投票
   发表时间:2012-01-12  
看描述好像是钱扣了,订单还显示未付款。
45分钟未付款,订单会作废。
45分钟这点很不人性化,手动登录很怀疑能不能在45分钟登录进去。
0 请登录后投票
   发表时间:2012-01-12  
zmcsut 写道
linliangyi2007 写道
光顾着抱怨,有点跑题了。下面言归正传,让我们从系统设计角度来看看要如何设计流量如此之大的东东。

本人觉得系统架构的关键要有3大部分

1.排队等待子系统
  
  如此大的并发量不是简单的群集能承受的,因此,系统需要一个缓冲区,就好比在窗口面前排队一样,在进入订票流程前,应该有个排队处理系统,简单的页面,让电脑面前的用户知道自己的请求已经提交,系统慢,大概还需要几分钟才能受理你的订票请求。

  如果大家玩过wow,下过魔兽的副本,就知道有个副本排队系统了,这样也一样。
  此系统需要大量的HTTP前端服务器,接受用户请求,但不需要很复杂的业务逻辑。

2.订票流程处理子系统

   进入该子系统的用户开始正式的订票流程,如,填写各种表单。该子系统关键在于需要一张表,用来记录用户已经订出的票,扣除系统剩余票数,这样不至于用户交钱了票没了。只有用户取消订票时,将票退回系统。
   同时,该系统应该记录用户在订票流程的日志。


3.订票确认与分发子系统
   用户完成所有信息填写后,进入该子系统,该系统负责最终登记用户的订票信息,并正式的将票据出售,同时从用户的资金账户中扣除钱款,并在系统中锁定票号。
    用户将从这个系统中,最终确认自己的购买的票据时间,票据,出发到达等信息,即提供最终票务状态的查询。


剩下的具体设计,如,数据库集群设计,负载均衡设计,动态服务扩展设计,高可用性设计,高速缓存设计,这些议题大家平时都在讨论,这里就不多说了。

大方向设计出来了,小细节的可选方案就灵活了。我就不信这样的设计会出现钱扣了,票没出的情况...


尼玛,再次抱怨铁道部购票网站设计就是无脑的坑爹货!

排队不如撞大运,否则全让自动登录给抢了。
不敢相信第2、3点会没有?有证据吗?
感觉12306就是按第2、第3点来的,也就是这2步让人不太舒服。





另外,我要驳斥“排队不如撞大运,否则全让自动登录给抢了。”这个观点。
排队系统的设计不是简单的FIFO,可以有很多的方式判断优先级。系统可以通过Activex插件获取客户请求的IP,网卡ID以及电脑CPU的唯一序列码,再通过优先级算法设计,分配来之不同IP,不同网卡ID和CPU请求,使他们更公平,这样就不存在用程序能抢票了。

0 请登录后投票
   发表时间:2012-01-12  
关于排队,我没说是同一台机器开N多软件抢。
N多人睡觉前开好登录软件。
我这手动登录的苦逼,辛辛苦苦5点30打开电脑,6点登录一看,排到了*****后,直接就想去砸人呢。还不如现在这样,好歹有点希望。
0 请登录后投票
   发表时间:2012-01-12  
引用
排队不如撞大运,否则全让自动登录给抢了。
不敢相信第2、3点会没有?有证据吗?
感觉12306就是按第2、第3点来的,也就是这2步让人不太舒服。


自动登录发的请求和普通请求无两样 照样排队。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics