想像一下,只有一家寺庙来舍粥,但天下穷人都要来喝一碗或几碗(黄牛)。总不能谁厉害谁先喝吧?解决思路无非是两个
A:排队
B:开各地分寺庙+排队
显然都在一个地方排队是不太现实的,绕地球半圈的喝粥长队肯定也是叹为观止的,而现在这个订票系统显然就是这个状况。
思考?为什么没听说大家一起上QQ就有上不去的?难倒是天下QQ号码没有天下火车票多?嘿嘿。
先说说排队。大家都有过去银行办理业务的经历吧,反正我父母那一辈的人都是去柜台办理。各种卡他们还是玩不转地,于是银行就学习医院的做法,在门口设立了一个自动挂号机(突然想到如果全市都是
老年人,是不是连这个号黄牛也要分一杯羹?哈哈,请原谅我的跳跃思维:-))于是忠实的柜台营业人员只认号码不认人了。妙哉,可是问题又出现了,现在只解决了秩序问题,不打架了,但是还是没有解
决长队的问题。
随着互联网安全的日益完善,现在很少听到网络风暴这个词了,大量的package在网络层拥堵,造成网络设备的不堪重负,服务器的应接不暇,正是这些原因才造成用户体验上的网页无法打开,无响应等等
现象。可不是,大家一起伸手要粥,和尚累死不说,你端着粥碗的手根本就拿不回来,最终只能人仰粥翻。我们可以在数据链路层划分vlan,可以在网络层通过ip协议让数据分门别类,但我们的程序应该怎
样设计?天下的道理都是一样的。(呵呵,面向对象思想真伟大)突然想起我在北外考试的情景,大家分组,每组20个人,进入考场,这样便于统计人数,也好管理,只记组数就ok了。那其他人不能无止境
的等吧,已经进入考场的人不出来怎么办?好办,拿到线程的人也就是进入考场的人,必须在10分钟内结束交易,否则对不起,从新排队。(这难倒不人性化吗?你前面占一个人磨磨唧唧不办完事,后面人
不哄她?)实名制,让每个购票的人拥有唯一的id,也就是说,当我输入id,点击我要买票的时候,已经可以挂好号了(带属性:当前第几组,还有xxx时间(倒计时)到这组,请等候买票)。不用急,因
为服务器完全有足够的能力在10分钟内处理完当前组中所有交易,而且会人性化的设定提示音提示该买票了。一定要注意哟,否则又要从新排队啦。这样就能从根本上保证至多20分钟就可以完成买票的事情
。
新的问题又出现了,进入考场也不能随便坐啊?腾讯的斗地主又给了我们新的启发,我们只能找有空位子的桌子玩吧?对程序会自动将当前线程分配到有余地的组中(需要分布式系统的支持)。至于交易成
功,但是到时候又出不了票的情况,完全是骗外行的鬼话。事务难倒没有隔离级别?交易成功后应该自动提示可打印凭单,作为日后扯皮的法律依据。而且这条交易记录是拥有唯一性的,也就是说这张票再
也不会卖给别人,因为交易成功了,数据库应该有信息可查,理所应当给人家出票。否则双倍退还票款金额(有点狠,但不这样就不能体现以民为本,铁道部想不吃亏也行,拿出诚意来出单。)当然了,银
行的接口要给力啊,他要是故意掉链子,谁又敢谴责你呢?(不会需要一个第三方的铁路宝吧?)
关于防止黄牛:电话购票本意是想方便不会上网的民众,但这块鸡肋却大大方便了黄牛,不知道是故意的故意的还是故意的呢?想个办法,(春运或高峰期间取消电话预定吧,反正又打不进去,还有很多骗
子电话)。到车站去买票吧,反正黄牛已经拿不到票了,(除非有人故意不放票,对于吃“牛”肉的人,司法立法部门要予以酒驾一样的打击,才能见效)。对于网络购票者,要对其判断id之外的其它属性
,不能让其同一个id购买同一天的其它任何票,但退票后例外。还应对其ip进行判断防止某牛拿一摞身份证在一个地方操作,快速的换个网吧也没意义,因为延误时间,票早卖完了。对于实在不会操作的人
,只能窗口买票,但是有代价的,必须本人,只卖一张。窗口售票应优先于网络购票(春运期间禁止异地ip购票,没办法了只能这样顾全大局了)应推迟窗口1小时放票,让排了一夜队的人有机会买到票,
由于是一人只有一张且是本人购票。且只能一次。所以不会全卖光(除非工作人员徇私,严惩之)。放票后退票原则应在火车开走后。防止黄牛二次倒卖。退票后扣除相应款项。且下次购票还要扣除相应的
信用分数,信用分数达到一定分值,加收大量服务费,曾加其退票成本,从而杜绝倒卖。
对于放票期间瞬间的高访问量google和Tencent是怎么作到的我还才疏学浅,但我想多庙放粥的办法还是不错的,平时铁道部自己各个省市按照需求的统计合理分配服务器(够用就好)高峰时,可以租用类
似腾讯的设备(要给钱的哦,要么做广告也行哈),这样可以极大节约成本资源。(很多人一定会想,要是QQ上有买票功能就好了,是,我想腾讯这样的雄厚企业要做这个一定会做的很好,可是有些问题我
们这些搞技术的永远也不会想通,否则也不学技术了。)
总之,就是技术加制度,但重中之重还是制度。没有相关人员的秉公无私,再好的技术也是浮云。压着不放,助黄牛,什么技术都没辙。
胡言妄想之,看到腾讯报道辛辛苦苦的民工回家连夜排队也买不到票,心里无比酸痛。思路在2个小时内也不可能完善,肯定有许多荒谬错误,同行们别骂我,看在我一个忧民的码农的份上。[color=gray][/color]
分享到:
相关推荐
程序设计是一门涉及逻辑思维、问题解决和计算机操作的学科,主要目的是通过编写代码来让计算机执行特定任务。在高中二年级的计算机科学课程中,初识程序设计是开启学生对这个领域理解的关键步骤。本教案旨在引导学生...
3. 通过Skids硬件平台进一步实践Python编程,如绘制国旗,使用条件语句和逻辑运算符进行程序设计,甚至实现猜拳游戏等。 通过这样的课程设置,学生将逐步掌握Python编程技能,为后续的Web开发、数据库管理和网页...
由于大数据专业学生对程序设计的要求不是很高,但又需要具备一定的计算思维能力,熟悉用程序进行数据分析的一般流程,因此程序设计教材要言不甚深、文不甚俗,既要覆盖相关技术,又不能面面俱到,注重对问题的分析和...
C语言程序设计课程教学思考的知识点可以从以下几个方面进行详细阐述: 1. C语言程序设计课程的重要性 C语言程序设计课程是高校计算机专业以及部分非计算机专业的基础课程,它的主要目的是让学生通过学习C语言的语法...
由于大数据专业学生对程序设计的要求不是很高,但又需要具备一定的计算思维能力,熟悉用程序进行数据分析的一般流程,因此程序设计教材要言不甚深、文不甚俗,既要覆盖相关技术,又不能面面俱到,注重对问题的分析和...
《监控项目设计原则》文件的标题和描述并没有提供实际的监控系统设计原则的具体信息,而只是重复了文件的标题。鉴于此,我将根据文件的部分内容尝试提供相关的知识点。 文件内容包含了几个关键词:“GDP03G Wifi”...
《程序设计实践》是B.W. Kernighan与裘宗燕翻译的一本经典著作,它深入探讨了程序设计的本质和技巧,旨在通过实践提升程序员的...通过学习这本书,你将能更好地理解和掌握程序设计的核心原则,从而提高自己的编程技能。
首先,C语言是一种广泛使用的计算机编程语言,它具有结构化程序设计的特点,适用于系统软件和应用软件的开发。C语言以其高效、灵活、功能强大而著称,是很多程序员入门和进阶必须掌握的基础语言之一。 全国计算机...
《C程序设计》教材虽然普遍使用,但是需要根据学生层次和专业特点对内容进行适当的调整。 在教学质量的提升上,首先需要考虑教材选择的适用性。不同的专业应选择不同侧重点的教材,体现因材施教的原则。例如,可以...
2. 编程语言的一致性问题:在程序设计基础课程中教授的编程语言与数据结构课程实验中使用的编程语言不统一,例如前一课程使用C++,而后者可能使用C或Java。这种不一致不仅影响了学生的上机实验效果,还可能导致理论...
本研究聚焦于利用Java语言设计并实现校园二手交易平台小程序,该小程序在运行时对数据库及程序本身的影响较小,用户体验流畅。Java作为当时颇为流行且安全性较高的开发框架之一,结合MySQL数据库,最终成功构建了这...
本研究聚焦于利用Java语言设计并实现校园二手交易平台小程序,该小程序在运行时对数据库及程序本身的影响较小,用户体验流畅。Java作为当时颇为流行且安全性较高的开发框架之一,结合MySQL数据库,最终成功构建了这...
教学方法上,教师应使用案例教学,通过具体的问题来引导学生思考,使学生通过实际操作解决问题,从而达到活学活用的目的。 针对中职学生的教学方法,应着重于引导学生积极参与,激发他们的学习兴趣。比如,在教授...
鉴于此目的,我们编写了一些重要的设计模式,并以编目分类的形式将它们展现出来。 内容简介 《设计模式:可复用面向对象软件的基础》是引导读者走出软件设计迷宫的指路明灯,凝聚了软件开发界几十年设计经验的结晶。...
总的来说,ACM竞赛驱动的程序设计类课程教学改革策略通过引入竞赛元素,强化了理论教学的实践性,提高了实践教学的理论深度,使学生在抽象思维、逻辑推理、逆向思考和实际问题解决能力上得到全面锻炼。这一改革方法...
鉴于此,《Android SDK程序设计与开发范例》首先让读者熟悉Android使用的XML和Java语法,然后才开始创建Android应用程序,介绍使用界面、事件处理、多活动Android应用程序,学习数据存储与数据交换、数据库和内容...
《C语言程序设计》课程教学方法改革研究着重探讨如何提高教学质量,针对高职院校学生的特点,旨在帮助学生克服学习困难,提升编程能力和逻辑思维。教学方法的改革主要包括以下几个方面: 1. 强化基础算法:鉴于大...
### Java手机程序设计入门10:MIDP图形用户界面设计 #### 重要知识点解析: 在探讨《Java手机程序设计入门10》时,我们聚焦于MIDP(Mobile Information Device Profile)图形用户界面设计这一核心主题。MIDP是J2ME...
由于大数据专业学生对程序设计的要求不是很高,但又需要具备一定的计算思维能力,熟悉用程序进行数据分析的一般流程,因此程序设计教材要言不甚深、文不甚俗,既要覆盖相关技术,又不能面面俱到,注重对问题的分析和...
该课程旨在培养学生掌握程序设计技术和面向对象编程思想,包括计算机体系结构、面向对象编程原则、多线程处理、网络通信以及程序设计的基本概念。通过学习,学生应能理解Java语言特性,熟悉常见的Java类库,并能运用...