新生明天军训,我们一年级老师先来,教室宿舍还没有整顿好,暂时住在学生宿舍里,一切从简!高低床,坐上去直不起腰,别人尚可,我的找事儿的脖颈可受不了。整个大抽屉,侧立,稍高,脚不沾地儿,自然地双腿盘在上面。抬眼一看对面充电的同事,我笑了:人家九十来斤,腿盘得漂亮,我这吨位,只能到这儿了。[允悲]

#艺墅杯·空间设计大赛#

象屿虹桥悦府

| 现代极简

| 独栋 | 200㎡
整个外观全部为石材干挂法式宫廷风格。小夫妻俩居住,暂时还没有小孩。地下室为影视厅、吧区休闲功能,一楼客厅、餐厅、厨房。二楼主人套房、预留小孩房兼客房。

[赞啊]快来给您喜欢的作品投票吧!
[爱你]https://t.cn/AiWLBg5Q

#12306买到相同高铁票# 新闻底下很多网友表示理解,毕竟日常处理量这么大。

这其实是不够的,有点儿同情心泛滥了,12306是个系统,不是人工出票,没有你们想象中疲惫不堪的阿姨在工作。维护人员恰好能借此机会结合12306的系统架构进行深度分析,是分布式缓存,数据库,还是哪里出现了问题,更新处事行为手则。

12306的业务逻辑到底有多复杂?

对于任何一个互联网交易系统来说,重要的有两件事,一是提供查询,二是数据计算;任何查询业务都有响应时间的要求,用户体验最好不要超过5秒钟;而数据计算(实时计算或非实时批量计算)与实际业务逻辑有密切的关系。

对于电子商务网站的交易系统,例如淘宝网,当店家出售一件商品,库存减一,客户退货,库存加一,当库存为零,商品下架。此类交易系统所使用的是简单快速的算法。

因为不同品牌商品的销售彼此之间没有关联性,不会因为某件品牌商品的出售关联到其他品牌商品的库存量,它们的商品库存是属于“静态库存”,所以电商交易系统的主要设计重点是提供快速响应时间,高可用性(容灾和备份)和系统扩展性,避免在高峰交易期间,因为响应时间慢或是系统当机而失去庞大的商机。

而相比之下

12306互联网售票系统是业务逻辑很复杂的系统

如果将每张可出售的火车票当成一件商品来看,每张票的销售都会关联到整条路线每个站点可销售的余票量,有些站点的余票量会产生变化,有些站点余票量不会有变化。由另外一个角度来看,当销售一张票,改签,或退票时,整条路线每个站点的余票量都需要重新计算,也就是说每个站点的余票库存是个“动态变化库存”的概念。站点与站点之间的余票库存有巨大的关联性,此“动态库存”概念的业务逻辑是12306与电商网站最大的差异。

而且在整个客票系统里,有几十条条行车路线,有3000多个车次(G,D,K,Z,C,..),上万个火车站点,有不同的席次(硬座,硬卧,软座,软卧,无座),座位等级(商务,一等,二等),和车票等级(一般,军人,学生,残障,小孩)等因素,这些因素都是环环相扣的,任何一个参数发生变化,其他的也会受到影响,而普通电商网站则不会遇到这些问题。

将这些参数放在数学模型上,至少有数千亿条的排列组合。如何将每日上千万张的车票分配到数千亿条的排列组合里面,并且还要考虑公正,公平的合理分配。例如,某条火车路线有100个车次,每个车次可承载1000人,有100个一等座,900个2等座,另外还有50个火车停靠站,这实际上是在解决排列组合数学模型的难题。

这一套架构上千万条的分配规则,是与车次,路线,加班车,席次,座位等级,车票等级,乘车区间,x天预售期和搭乘时间等都有密切关系。每一个特定的余票查询,都会触发余票计算,每班车次的余票计算都有上万条规则需要匹配,所有经过“乘车区间”的车次都需要做余票计算。

如果将整条路线的所有车票都放在起始站出售的话,乘车距离最远的先购票,创造的利润最大,但是下游站点就买不到票,失去公正和公平的分配原则。所以,每个站点的余票计算并不是简单的两站之间算好的票数,做加加减减的计算。

这意味着12306的设计重点不但要具有大型电商网站所具备的特性外(要提供快速响应时间,高可用性(容灾和备份)和系统的扩展性),还需要有强大的CPU计算资源来支撑。余票查询/计算需要使用大量的CPU计算资源,同时必须快速反应余票查询的结果给用户。在春运售票高峰期间,每分钟都有数万张车票的销售,假如余票查询的响应时间缓慢,这些信息就失去价值,会发生看得到票,但实际上买不到票的情况发生。

而这,目前国内只有阿里云的计算能力能办得到,所以12306是把余票查询功能全部托管给阿里云进行处理的。 另外,在春运高峰期的时候,还会额外多租几个云来进行计算。

因为个人资料的敏感度和安全性,12306不会将用户资料放在阿里云,但会将需要耗费巨大资源的余票查询业务放在阿里云提供服务。另外符合此条件的有3大服务器集群,Web服务器集群,应用服务器缓存集群,和余票查询/计算集群。

那么为什么这样复杂的业务逻辑还能天天这样坚挺持久很少出错呢?

因为12306采用的应该是世界上最大的混合云架构,

由铁路总公司数据中心和铁科院数据中心,两个核心运行整套业务流程服务,为什么是两个呢?因为可以彼此作为异地容灾备份的准备,一个出问题了,另一个还能限流服务,而中心应该越少规模越大越好,如果太多则会成倍增加数据计算复杂程度。

然后将“难预测,暂时性”的巨大访问量-余票查询业务放在阿里云,阿里云可以按需动态调整网络带宽和“虚机“资源,保证12306的服务品质,并解决网络传输瓶颈问题。

12306将热点数据放在NoSQL的Gemfire平台,提供快速查询和计算;将关键数据持久化到关系型数据库。

总之,虽然12306的UI设计看上去很“大道至简”,但是他却依旧是中国,甚至是世界上最复杂的混合云架构之一,这次的出错是个难得的自检机会。


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 中国首条超级公路即将开通
  • 葛优躺侵权案落判葛优获赔7.5万元 艺人肖像不能胡乱用
  • 西安大妈29年“卧底”医院只为等一个人,刚刚,她等的人终于来了!
  • 安理会一致通过叙利亚全境停火决议 至少30天
  • 现场泪奔! 冬奥韩国选手摘银磕头道歉 为内讧言行公开道歉乞求原谅
  • 舌尖3回应质疑:即使冒险也要创新,你怎么看?
  • 国际能源署署长:中国将超美国成全球最大核能国家
  • 北京8分钟,惊艳全世界!冬奥会进入北京时间
  • 驾驶证销分新规下月实施!“借本销分”不能用了
  • 黄子韬再度胜诉!SM主张“专属经纪权”被驳回
  • 舌尖3回应质疑,但观众并不买账:别把观众当傻子
  • “万人迷”陈好任中戏考官低调现身 皮肤姣好依旧美丽动人
  • 美国宣布对朝史上最大规模制裁 特朗普急眼放狠话
  • 葛优躺侵权案落判,艺龙网被判赔偿7.5万元
  • 长沙卡式炉爆炸 正在吃饭的食客们多人被炸伤送院正在治疗
  • 男人大新闻:蓝军旅训练猛照/中国首条超级公路即将开通/冬奥闭幕日看北京8分钟
  • “精日曝光者被人肉”,究竟孰是孰非?
  • 网红狗的幸福旅行,爱对了人你也可以
  • 错峰出游,这里竟如此惬意!
  • 帕楚里亚,NBA不允许有你这么脏的人存在!