- 澳门星际3801线路测试
- 版本:v5.6.5
- 类别:理财
- 大小:36M
- 时间:02月15日
温馨提示:苹果用户下载后须在:设置>>通用>>设备管理,添加信任!安卓用户可直接下载!
该app属于无毒绿色应用程序,请用户放心下载使用!
昨天,2012年1月11日,网友 @fenng 写了一篇文章,批评铁道部火车票网上订购系统,。同时在新浪发了一条言辞激烈的微博,“去你妈的‘海量事务高速处理系统’”,引起热议
春节将到,大家买不着车票,赶不上大年三十与家人团聚,急切心情可以理解。但是拍桌子开骂,只能宣泄情绪,解决不了实际问题。
开发一套订票系统并澳门星际3801线路测试不难,难在应对春运期间,日均 10 亿级别的洪峰流量。日均 10 亿级别的洪峰请求,在中国这个人口全球第一大国,不算稀罕,不仅火车票订票系统会遇到,而且电子商务在促销时,也会遇到,社交网站遇到新闻热点时,也会遇到。
所以,能够在中国成功运行的云计算系统,推广到全球,一定也能成功。但是在美国成功运行的云计算系统,移植到中国,却不一定成功。
如果我们能够设计建造一套,稳定而高效的铁路订票系统,不仅解决了中国老百姓的实际问题,而且在全球高科技业界,也是一大亮点,而且是贴着中国标签的前沿科技的亮点。
于是软件工程师们献计献策,讨论如何改进 12306 网上购票系统[3]。其中比较有代表性的,有两篇[4,5]。
网友的评论中,有观点认为,[4] 利用“虚拟排队”的手段,将过程拉长负载降低,是网游的设计思路。而 [5] 利用缓存技术,一层层地降低系统负荷, 是互联网的设计思路。
个人认为,[4] 和 [5] 并不是相互排斥的两种路线,两者着重解决的问题不同,不妨结合起来使用,取长补短。下面介绍一下我们的设计草案,追求实用,摈弃花哨。抛砖引玉,欢迎拍砖。
图一是系统架构图,典型的“展现层”/ “业务层”/ “数据层”的三段论。
无论用户用电脑浏览器,还是手机访问 网站,用户请求首先被网站的负载均衡器接收。负载均衡器连接着一群门户服务器,根据各个门户服务器的负载轻重,负载均衡器把用户请求,转发到某一相对清闲的门户服务器。
门户服务器的任务类似于收发室老头儿,它只读每个用户请求的前几个 bytes,目的是确定用户请求的类型,然后把请求投放到相应类型的队列中去。门户服务器的处理逻辑非常简单,这样做的好处,是澳门星际3801线路测试让它能够快速处理大批量用户请求。
1. 查询。用户订票前,查询车次以及余票。用户下订单后,查询是否已经订上票。
2. 订票,包括确定车次和票数,然后付款。用户付款时,需要在网银等网站上操作。
1. 运行于缓存中的任务队列。设置队列的目的,是防止处理过程耗时太长,导致大量用户请求拥塞于门户服务器,导致系统瘫痪。
2. 业务处理处理器,对于每一类业务,分别有一群业务服务器。不同业务的处理流程,各不相同。
1. 用户发出请求后,经过短暂的等待时间,能够迅速看到结果。平均等待时间不能超过 1 秒。
1. 查询车次和时间表,这是静态内容,很少与数据库交互,数据量也不大,可以缓存在内存中。
车次和时间表的数据结构,不妨采用 Key-Value 的方式,开发简单,使用效率高。Key-Value 的具体实现有很多产品,[5] 建议使用 Redis。
这些是技术细节,不妨通过对比实验,针对火车票订票系统的实际流量,以及峰值波动,确定哪一个产品最合适。
[5] 建议把剩余车票只分为两种,“有”或“无”,这样减少调用访问数据库的次数,降低数据库的压力。但是这样做,不一定能够满足用户的需求,说不定会招致网友的批评讥讽。
[4] 建议在订票澳门星际3801线路测试队列中,增加测算订票队列长度的功能,根据订票队列长度以及队列中每个请求的购票数量,可以计算出每个车次的剩余座位。如果 12306.cn 网站只有一个后台系统,这个办法行之有效。
但是假如 12306.cn 网站采用分布式结构,每个铁路分局澳门星际3801线路测试设有子系统,分别管理各个铁路分局辖区内的各个车次。在分布式系统下,这个办法面临任务转发的麻烦。不仅开发工作量大,而且会延长查询流程处理时间,导致用户长久等待。
每个用户通常只关心自己订的票。如果把每个用户订购的车票的所有内容,都缓存在内存里,不仅非常耗用内存空间,内存空间使用效率低下,更严重的问题是,访问数据库过于频繁,数据量大,增大数据库的压力。
解决上述分布式同步,以及数据库压力的两个问题,不妨从订票的流程设计和数据结构设计入手。
假如有个北京用户在网上订购了一套联票,途经北京铁路局和郑州铁路局辖区的两个车次。用户从北京上网,由北京铁路局的子系统,处理他的请求。北京铁路局的订票服务器把他的请求一分为二,北京铁路局的车次的订票,在北京子系统完成,郑州铁路局的车次在郑州子系统完成。
北京订票服务器完成订票后,把上述四个数据组,写入北京子系统的数据库,同时缓存进北京的查询服务器,参见图二下半部第6步和第7步。
郑州订票服务器完成订票后,把上述四个数据组,写入郑州子系统的数据库,同时缓存进北京的查询服务器,而不是郑州的服务器。
让订票服务器把订票数据,同时写入数据库和查询服务器的缓存,目的是让数据库永久保留订票记录,而让大多数查询,只访问缓存,降低数据库的压力。
北京用户的订票数据,只缓存在北京的查询服务器,不跨域缓存,从而降低缓存空间的占用,和同步的麻烦。这样做,有个前提假设,查询用户与订票用户,基本上是同一个人,而且从同一个城市上网。
但是这里有个缺陷,某用户在北京上网订了票。过了几天,他在北京上网,输入用户ID和密码后,就会看到他订购的所有车票。可是又过了几天,他去了郑州,从郑州上网,同样输澳门星际3801线路测试入用户ID和密码,却看不到他订购的所有车票。
解决这个缺陷的办法并不麻烦,在用户查询订票信息时,需要注明订票地点,系统根据订票地点,把查询请求转发到相应区域的子系统。
另外,每次订票的时候,网站会给他的手机发送短信,提供订票信息,参见图二下半部第8步和第9步。
以上是一个初步设计,还有不少细节需要完善,例如防火墙如何布置等等。这个设计不仅适用于单一的集中式部署,而且也适合分布式部署。
或许有读者会问,为什么没有用到云计算?其实上述架构设计,为将来向云计算演变,留下了伏笔。
在上述架构设计中,我们假定每个环节需要用多少服务器,需要多大容量的数据库,预先都已经规划好。但是假如事先的规划,低于实际承受的流量和数据量,那么系统就会崩溃。所以,事先的规划,只能以峰值为基准设立。
但是峰值将会是多少?事先难以确定。即便能够确定峰值,然后以峰值为基准,规划系统的能力,那么春运过后,就会有大量资源冗余,造成资源浪费?
如何既能抗洪,又不造成资源浪费?解决方案是云计算,而且目前看来,除了云计算,没有别的办法。
听到很多言论说在中国程序员是吃青春饭的,那么产品经理呢,也吃青春饭吗?
人人都是产品经理(是以产品经理、运营为核心的学习、交流、分享平台,集媒体、培训、社群为一体,全方位服务产品人和运营人,成立11年举办在线+期,线+场,产品经理大会、运营大会50+场,覆盖北上广深杭成都等20个城市,在行业有较高的影响力和知名度。平台聚集了众多BAT美团京东滴滴360小米网易等知名互联网公司产品总监和运营总监,他们在这里与你一起成长。
相关文章
更多+-
02月15日
-
02月15日
-
02月15日
-
02月15日
-
02月15日
-
02月15日
-
02月15日
-
02月15日
精品推荐
-
澳门新葡网址8535是多少:国内最长湖底隧道通!车!啦!下载
-
5524澳门24小时线路网址:雨雨雨雨雨!26℃→15℃、这周郑州天气太刺激下载
-
美高梅最新下载网站是多少啊:5月1日起成都新开2条熊猫快线公交 二环高架站点可直达熊猫基地下载
-
ag亚洲集团 ag85856:世界顶级的五个小众奢华酒店品牌亚洲占两席你知道有哪些吗?下载
-
星际电玩城:深圳地铁2020高清图一览下载
-
葡京线路检测3522:云南宁洱:乡村旅游托起百姓致富“金饭碗”下载
-
澳门星际旧版app:《综合运输服务“十四五”发展规划》有关公共交通的内容下载
-
mgm4858 cc:红色旅游发展案例 新时代下“红色旅游+”的新路径探索——江西省于都打造中央红军长征集结出发地红…下载
-
贝博ballbet体育官网登录:重磅!东莞地铁3号线站点位置终于曝光下载
-
威斯尼斯人娱乐官方网站登录:“查开房”网又复活:输入个人信息可查开房记录下载
-
金沙娱场 手机版8336:出门先查询广州南站公共交通运输有调整下载
-
必威betway中文版:能带给人惊喜的矮牵牛连挂好几盆?夏天养矮牵牛不能偷懒下载
-
-
朱爵乐 02月15日 15:55
换句话说:有人已经经庖代了你正在《金卡戴珊:好莱坞》游戏中的重要地位,那你就连忙拿脱手机也接纳一些步伐。对此,德马西还称,他认为智妙手表游戏照旧一个初期现象,正在两到三个或者更多的摩尔定律周期内还很难成为支流,并且这些产物的价钱还会随之上涨。
-
吴玟欣 02月15日 05:34
操作简朴,简朴明晰的操作界面,细心详实的功效注明,让你操作更简朴。
-
van♂ 02月15日 04:14
近程挫伤-62。5%(梦魇地带中为-25%)
-
王如超_Z1tC 02月15日 15:06
北京柏诚珈铭商业无限公司LMBLTS562
赵羿 02月15日 23:28
黑铁酒吧里熙熙攘攘,是各路怪杰异士时常帮衬的处所,而科林烈酒也喜好这里。