需求描述
1.网站订票
2.身份证实名验证
思考
1.根据新闻发布的数据,每年春运的运送旅客人次在31亿人次,基本分布在40天时间内
2.依然提前10天买票,所以这么算每天最多在1亿人次(新闻说最多7kw每天依然做坏打算)
3.假设每个人只自己买票,或者每个票都需要实名认证(最坏的统计)
4.每天会有1亿的业务查询(身份证验证),每天会有1亿的交易(支付)
5.每天最多一个亿的数据库订票记录,一个亿的数据库insert操作
问题瓶颈(Front to Backgroud)
1.Web端,每天请求上亿,压力很大,包括html js css img等,需要占用大量带宽
2.身份证认证,可能会用到第三方的认证,或者铁道部协议,获取到身份证信息,这个查询量也很大
3.交易,银行性能应该不在瓶颈
4.订票记录,采用按照车次分表,应该是集中控制集群,分表 分区 索引,速度不会太慢
5.查询余票,每次交易成功,更新订票数据,更新量较大
分析
1.网站的内容可以分布式部署,采用apache+xxx分发,后台多个镜像分担请求,进行冗余;图片、css、js、html、动态jsp、后台业务,分别部署;并且对web进行部分优化,压缩,合并,缓存等。
2.每次订票数据流量在2M,每天1200w/8h/60min/60s,每秒420个订票请求,840M/s的网络流量,根据分布6种文件140M/s,一般光纤网络就可以了;每种文件下面分布几个cluster,性能足以支持,每秒70个请求。并不大
3.身份证第三方只要支持每秒1w+的并发请求就足以支持订票了。很容易
4.如果本地验证身份证,根据省份、建立表,根据城市建立分区表,速度也会非常快,用身份证做主键,一条身份证信息0.2k,全国13亿=260G的数据量,easy,做个RAC就足以支持这种压力了
5.银行不考虑
6.车次,订票记录,余票记录,每天7kw的记录,14G/天,保存20天,才280G
7.订票业务按照省份分布,每个省份单独结算
8.整体采用SOA架构,都是服务,每个服务专注自己的业务,优化自己的服务
9.银行交易需要大量校对和核实业务,也许要一些投入,算成本
想不明白他们是怎么设计的,性能会这么烂
给我5个1000M光纤接入,5箱刀片,基本就可以解决这个service了吧。。
200W的硬件投资,600W的软件开发,200W的技术支持和服务
1000W一个solution,不知道这个东西他们实际投资了多少钱,1000W是我的报价,拍拍脑袋,很多软件,硬件方案,网络拓扑,都没细化,估计也是个赔本的项目= =。
很多数据全凭臆想,可能很多不符事实,疏漏很多,考虑不全
不过还挺好玩的。
已有 0 人发表留言,猛击->> 这里<<-参与讨论
ITeye推荐