网上买火车票技术
来源:互联网 发布:军用bkt开山刀数据 编辑:程序博客网 时间:2024/03/28 20:49
每逢佳节倍思亲,在外工作的人买到一张回家的票,就成了一件重要的事情,而12306网站的订票系统一直都是各种技术人最为诟病的网站,慢、宕机、买不到……基本成了这个网站的代名词了。对于慢来讲,初级的工程师容易犯的问题就是找HTTP的服务器,更快的HTTP服务器。最近Tengine-2.0.0正式发布,从HTTP来说是比较新的选择之一,毕竟经过淘宝验证,这个版本中包括了对SPDY v3协议的实现,其中最重要的是支持了SPDY流控。还增强了DSO模块,编译动态模块不再依赖原始编译环境了。另外,这个版本基于的Nginx核心也迁移到了1.44。但12306这种纯动态页面,用的是Java开发,有人分析说用的是WebLogic做HTTP服务器,速度的瓶颈卡在后台的数据库。这种最新的SPDY协议,其实能解决的仅仅是通过压缩、多路复用来降低对于整个带宽的要求。可如果是带宽不够,加带宽大概对于12306来讲是最容易解决的,也是最快能够看到的,可惜问题不在这方面。所以新技术仅仅是他们解决数据库问题后一个锦上添花的东西而已,而且我相信,财大气粗的铁路是不会在乎这点改进的,这其中有很多让人很不舒服的细节。
首先就是验证码。作为防止SPAM的技术屏障,我一直对这种技术极为不舒服,很多的验证码已经扭曲到了人都很难看清楚的地步。当年有很多类似的网站,SPAM的问题实在是让人头疼,大量的垃圾信息充斥其中,而对于一般的HTTP网站来说,分辨SPAM实在无能为力,毕竟HTTP的公开的协议和加密,让协议的模拟非常容易。所以解决这个问题,想来想去也只有这个方法,也才会有各种奇葩的认证方式。比如现在最新的就是计算数字的方式,一个认证里是让你算一个简单的加法,然后填入这个数字,还有通过音频的方式,点击一个音频,放一个单词,让你写出来,听起来有没有当年单词听写的感觉,加上各种扭曲的汉字、英文、数字……在这里一点不考虑用户的使用感受,所谓用我的地盘我做主,这里除了产品人员外,技术也确实需要思考这个问题。希望能够看到一些较好的解决方案出来,毕竟防到最后,都是大量的初级用户被挡在互联网之外,和技术带来方便的初衷实在相差太远。也看到铁路技术人员的辩驳,说自己如何努力,但我想说,结果才是大家需要的,在没有好的结果之前,任何努力都没什么好说的。
除了验证码问题,还有因为购票系统的庞大而带来的各种Bug,其实对于公开的系统来言,很多的问题都是由于思维的局限引起的。例如常见的SQL注入,第一次和工程师讲的时候,我还记得工程师听的眼睛都瞪圆了,第一句话就是,还能这样啊,所谓经验是所好学校,就是学费贵点,而对于购票来说,这个漏洞的问题,就是票贩子们的狂欢了,而这种漏洞,都集中在时间上面,黄牛们利用时间上出现的漏洞,控制了大量的票,注意,是控制,一点成本就没有,这种Bug,也只有在业务实战中才能发现,毕竟这么多复杂的规则同时在运行。而这种漏洞是最考验工程师水平的时候。第一,这种漏洞没有任何经验可以借鉴,前面还有现成的解决方案,就看你怎么操作而已,现在是没有任何经验可以补这种漏洞,需要工程师想自己想办法,并且时间很少,春运就这么半个月,你需要在这么短的时间,既保证现有的业务流程不收影响,还要及时的把漏洞补上,而且还要保证不出新的漏洞,最后说一个,就是所谓集思广益,这种政客喜欢玩的把戏,工程师还是不要了,毕竟要了解现有结构,还有现有的运行业务逻辑,还有人员运营方式,才能提出方案出来,完全脱离于现有的结构之外,提出新的解决方案,只能说儿戏了,所以看了很多的人提出各种解决方案,只能说叫脑力的激荡一下,但真正的难点,我想只有当事人才最清楚,才能解决。
谈到这里,我想很多人应该可以理解,为什么互联网的工程师的平均工资要比写传统软件的工程师多一些。以一个笑话结尾吧,一个摩托修理工帮一个心脏外科医生修发动机,发牢骚说,同样都是修理心脏,你的收入怎么比我高这么多,心脏外科大夫说:嗯,不停车修发动机是吗?
- 网上买火车票技术
- 技术宅---我的网上抢火车票攻略
- 技术宅---我的网上抢火车票攻略
- 网上买火车票网站的Bug,实在是留给程序员的福利
- 火车票买到了,不容易
- 火车票难买内幕
- 买火车票攻略!
- 省时省力买到火车票
- 网上抢火车票工具
- 网上订火车票流程
- 网上火车票几点放票
- 网上购火车票常见问题
- 网上订火车票的同学有救了!铁道部网站刷火车票的脚本!技术宅拯救世界
- 终于买到火车票了!!!
- 二十年前买火车票经历
- 银行卡买火车票更方便
- java学生买火车票问题
- 从网上订火车票的网站12306.cn谈谈网站性能技术
- Linux - Unbuntu管理员密码 初次登录 验证错误 "su: Authentication failure"
- C# dev gridcontrol “时间”字符串格式化
- javascript 公有私有,oop
- 百度地图给marker、lable、circle等Overlay添加事件
- Leetcode N-Queens II
- 网上买火车票技术
- 8个超实用的jQuery技巧攻略
- java序列化与反序列化
- sql2005 关闭prepareStatement对象时错误,超出了存储过程、函数、触发器或视图的最大嵌套层数
- java学习之继承与super关键字
- 中国亿万富豪数量世界第二 152人身家超10亿美元
- 开源 免费 java CMS - FreeCMS1.6 菜单管理
- 一场打车软件大战让众多用户尝到了甜头
- Nginx Location 语法,与简单配置