锁定老帖子 主题:如果让你设计铁道部购票网站,你怎么做
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-01-12
zmcsut 写道 linliangyi2007 写道 zmcsut 写道 12306和淘宝比?
有可比性吗? 一个一年用几天的东西,想按淘宝的规模弄。都疯了吧。 第一,虽然这个系统一年就几天高峰期,但是其重要性不言而喻,动车和高铁都投资按万亿计算,区区一个网站就舍不得投资了。更多原因是领导不懂IT,不重视,认为系统简单,随便找个小公司搞定就好。 第二,如果真要节省成本,那简单,找个B2C的电子商务网站合作,零时租用对方的服务(包括软硬件,带宽等),这样既有保障有节省。但这样可就少了拿回扣的发财机会了,领导们怎么可能答应!! 不理解第2点中的回扣问题。难道B2C网站不懂得给回扣。 这个不是重点,重点是外包的款项肯定比自建的拨款少的多,自建要购买很多的硬件,带宽,这个口子大啊~~花钱名正言顺啊.... |
|
返回顶楼 | |
发表时间:2012-01-12
linliangyi2007 写道 光顾着抱怨,有点跑题了。下面言归正传,让我们从系统设计角度来看看要如何设计流量如此之大的东东。
本人觉得系统架构的关键要有3大部分 1.排队等待子系统 如此大的并发量不是简单的群集能承受的,因此,系统需要一个缓冲区,就好比在窗口面前排队一样,在进入订票流程前,应该有个排队处理系统,简单的页面,让电脑面前的用户知道自己的请求已经提交,系统慢,大概还需要几分钟才能受理你的订票请求。 如果大家玩过wow,下过魔兽的副本,就知道有个副本排队系统了,这样也一样。 此系统需要大量的HTTP前端服务器,接受用户请求,但不需要很复杂的业务逻辑。 2.订票流程处理子系统 进入该子系统的用户开始正式的订票流程,如,填写各种表单。该子系统关键在于需要一张表,用来记录用户已经订出的票,扣除系统剩余票数,这样不至于用户交钱了票没了。只有用户取消订票时,将票退回系统。 同时,该系统应该记录用户在订票流程的日志。 3.订票确认与分发子系统 用户完成所有信息填写后,进入该子系统,该系统负责最终登记用户的订票信息,并正式的将票据出售,同时从用户的资金账户中扣除钱款,并在系统中锁定票号。 用户将从这个系统中,最终确认自己的购买的票据时间,票据,出发到达等信息,即提供最终票务状态的查询。 剩下的具体设计,如,数据库集群设计,负载均衡设计,动态服务扩展设计,高可用性设计,高速缓存设计,这些议题大家平时都在讨论,这里就不多说了。 大方向设计出来了,小细节的可选方案就灵活了。我就不信这样的设计会出现钱扣了,票没出的情况... 尼玛,再次抱怨铁道部购票网站设计就是无脑的坑爹货! 排队不如撞大运,否则全让自动登录给抢了。 不敢相信第2、3点会没有?有证据吗? 感觉12306就是按第2、第3点来的,也就是这2步让人不太舒服。 |
|
返回顶楼 | |
发表时间:2012-01-12
linliangyi2007 写道 zmcsut 写道 linliangyi2007 写道 zmcsut 写道 12306和淘宝比?
有可比性吗? 一个一年用几天的东西,想按淘宝的规模弄。都疯了吧。 第一,虽然这个系统一年就几天高峰期,但是其重要性不言而喻,动车和高铁都投资按万亿计算,区区一个网站就舍不得投资了。更多原因是领导不懂IT,不重视,认为系统简单,随便找个小公司搞定就好。 第二,如果真要节省成本,那简单,找个B2C的电子商务网站合作,零时租用对方的服务(包括软硬件,带宽等),这样既有保障有节省。但这样可就少了拿回扣的发财机会了,领导们怎么可能答应!! 不理解第2点中的回扣问题。难道B2C网站不懂得给回扣。 这个不是重点,重点是外包的款项肯定比自建的拨款少的多,自建要购买很多的硬件,带宽,这个口子大啊~~花钱名正言顺啊.... 你确认?外包IBM等公司绝对比自建项目拨款多的多,压根不是一个级别。 |
|
返回顶楼 | |
发表时间:2012-01-12
zmcsut 写道 linliangyi2007 写道 zmcsut 写道 linliangyi2007 写道 zmcsut 写道 12306和淘宝比?
有可比性吗? 一个一年用几天的东西,想按淘宝的规模弄。都疯了吧。 第一,虽然这个系统一年就几天高峰期,但是其重要性不言而喻,动车和高铁都投资按万亿计算,区区一个网站就舍不得投资了。更多原因是领导不懂IT,不重视,认为系统简单,随便找个小公司搞定就好。 第二,如果真要节省成本,那简单,找个B2C的电子商务网站合作,零时租用对方的服务(包括软硬件,带宽等),这样既有保障有节省。但这样可就少了拿回扣的发财机会了,领导们怎么可能答应!! 不理解第2点中的回扣问题。难道B2C网站不懂得给回扣。 这个不是重点,重点是外包的款项肯定比自建的拨款少的多,自建要购买很多的硬件,带宽,这个口子大啊~~花钱名正言顺啊.... 你确认?外包IBM等公司绝对比自建项目拨款多的多,压根不是一个级别。 他要是真外包了,就不是现在这个样了,这么大系统,找个都没听说的公司做,做了上千万,还这样... |
|
返回顶楼 | |
发表时间:2012-01-12
公司现在接的项目一百多万,数年前类似的项目IBM接上千万,年维护费300万+
|
|
返回顶楼 | |
发表时间:2012-01-12
zmcsut 写道 linliangyi2007 写道 光顾着抱怨,有点跑题了。下面言归正传,让我们从系统设计角度来看看要如何设计流量如此之大的东东。
本人觉得系统架构的关键要有3大部分 1.排队等待子系统 如此大的并发量不是简单的群集能承受的,因此,系统需要一个缓冲区,就好比在窗口面前排队一样,在进入订票流程前,应该有个排队处理系统,简单的页面,让电脑面前的用户知道自己的请求已经提交,系统慢,大概还需要几分钟才能受理你的订票请求。 如果大家玩过wow,下过魔兽的副本,就知道有个副本排队系统了,这样也一样。 此系统需要大量的HTTP前端服务器,接受用户请求,但不需要很复杂的业务逻辑。 2.订票流程处理子系统 进入该子系统的用户开始正式的订票流程,如,填写各种表单。该子系统关键在于需要一张表,用来记录用户已经订出的票,扣除系统剩余票数,这样不至于用户交钱了票没了。只有用户取消订票时,将票退回系统。 同时,该系统应该记录用户在订票流程的日志。 3.订票确认与分发子系统 用户完成所有信息填写后,进入该子系统,该系统负责最终登记用户的订票信息,并正式的将票据出售,同时从用户的资金账户中扣除钱款,并在系统中锁定票号。 用户将从这个系统中,最终确认自己的购买的票据时间,票据,出发到达等信息,即提供最终票务状态的查询。 剩下的具体设计,如,数据库集群设计,负载均衡设计,动态服务扩展设计,高可用性设计,高速缓存设计,这些议题大家平时都在讨论,这里就不多说了。 大方向设计出来了,小细节的可选方案就灵活了。我就不信这样的设计会出现钱扣了,票没出的情况... 尼玛,再次抱怨铁道部购票网站设计就是无脑的坑爹货! 排队不如撞大运,否则全让自动登录给抢了。 不敢相信第2、3点会没有?有证据吗? 感觉12306就是按第2、第3点来的,也就是这2步让人不太舒服。 首先,直接将第二块子系统暴露在最前头,这样的设计就是最大的问题,我就假设有n个用户同时填好表单,要提交,系统怎么办。。。要扣款,要出票,锁表 or 同步?! 其次,我怀疑(仅是怀疑),这个系统连2,3部都没分,否则如何解释钱扣了,票没订到的情况!!! |
|
返回顶楼 | |
发表时间:2012-01-12
看描述好像是钱扣了,订单还显示未付款。
45分钟未付款,订单会作废。 45分钟这点很不人性化,手动登录很怀疑能不能在45分钟登录进去。 |
|
返回顶楼 | |
发表时间: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请求,使他们更公平,这样就不存在用程序能抢票了。 |
|
返回顶楼 | |
发表时间:2012-01-12
关于排队,我没说是同一台机器开N多软件抢。
N多人睡觉前开好登录软件。 我这手动登录的苦逼,辛辛苦苦5点30打开电脑,6点登录一看,排到了*****后,直接就想去砸人呢。还不如现在这样,好歹有点希望。 |
|
返回顶楼 | |
发表时间:2012-01-12
引用 排队不如撞大运,否则全让自动登录给抢了。
不敢相信第2、3点会没有?有证据吗? 感觉12306就是按第2、第3点来的,也就是这2步让人不太舒服。 自动登录发的请求和普通请求无两样 照样排队。 |
|
返回顶楼 | |