撑起12306网站,全靠这个世界第一的缓存框架!
Posted 芋道源码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了撑起12306网站,全靠这个世界第一的缓存框架!相关的知识,希望对你有一定的参考价值。
五一小长假,火车票售卖又到了一个高峰期,而12306像往年一样又出现了宕机的情况,无法提供服务,不禁引起了广大网友的吐槽,不少人认为,同样是架设在阿里云上的服务器,为什么12306经常会宕机,而双11阿里每秒钟50多万笔订单,都没有宕机,这究竟是为什么?
非典型流量
这其中有一方面的原因是因为12306和普通的电商有本质的区别,因为12306除了线上订单以外,还要兼顾线下订单所形成的数据,包括一条线路各个站之间的最优售票计算,各个站点的余票量计算,业务非常复杂,而且其日常活跃用户较大,每天都极不稳定,不像双11一样有一个稳定的目标,可以针对性的进行扩容,或者说增加资源来平衡流量,达到稳定提供服务的效果,而火车票售卖系统就没有这样稳定的客户需求,每天的客户流量也无法确定,自然无法制定针对性的扩容方案,而且一些用户在买火车票时会进行多次查询,这无形中也会增加其网站的承受能力,高并发再加上复杂的业务,难度已经远远超过电商购物场景,宕机也是难免的。
黄牛党
另一方面也是因为购买火车票会有很多黄牛党,他们会使用一些性能极高的计算机进行毫秒级的刷票,这些请求基本已经超过了正常人类的请求次数,这些非正常用户的刷票请求也会占满12306服务器的资源,同时导致宕机,尤其是在节假日高峰期表现最为明显。
想要从根本上解决这种情况,首先要从技术角度出发,研究出能够承受更多并发的框架,其次也要从制度上面去限制一些黄牛党的刷票行为,只有这两架马车齐头并进,才能够为有正常购票需求的旅客提供更好的售票服务。
在承受并发能力这块,不得不说最流行的缓存框架Redis了,最近收集了一些关于Redis大厂面试题,基本都跟Redis如何抗住高并发以及底层架构原理相关,来看看你会几道?
1、如何用Redis高效实现12306的复杂售票业务
2、新浪微博突发事件如何做好Redis缓存的高可用
3、高并发场景缓存穿透&失效&雪崩如何解决
4、Redis高并发场景热点缓存如何重建
5、Redis集群架构如何抗住12306与双11的洪峰流量
6、Redis缓存与数据库双写不一致如何解决
7、双十一亿级用户日活统计如何用Redis快速计算
8、双十一电商推荐系统如何用Redis实现
10、美团单车如何基于Redis快速找到附近的车
11、Redis分布式锁主从架构锁失效问题如何解决
12、从CAP角度解释下Redis&Zookeeper锁架构异同
13、超大并发的分布式锁架构该如何设计
14、Redis底层ZSet跳表是如何设计与实现的
15、Redis底层ZSet实现压缩列表和跳表如何选择
16、Redis 6.0 多线程模型比单线程优化在哪里了
据我所知,如果能回答出其中的一半,就算是勉强及格了。
如果这些你都能全部回答出来,那你应该是妥妥的技术大牛了!可以放心去投大厂简历了!
如果你没办法完全答出这些问题,我建议你听听我朋友的一个技术分享《Redis高并发架构设计与源码剖析》,从Redis高并发架构设计到源码实现级别深度讲解,好好提升一下自己的核心竞争力!
本号粉丝专属福利
扫码立即报名,仅2分钱
长按扫码,抢最后50个名额
来学习,领预习资料
这个技术分享由我的朋友技术大牛诸葛老师带来,两天300分钟全程直播,直播时可以一起聊聊,大家工作中遇到的问题和程序员职业发展方向、瓶颈等,很乐意为大家解答!
对于想补习下自己Redis内功,想进大厂的同学,希望大家抓住机会,两天时间,抓紧提升!核心技术一览,看海报▼
5月6日晚上20:00开课
干货爆仓,全程高能 以上是关于撑起12306网站,全靠这个世界第一的缓存框架!的主要内容,如果未能解决你的问题,请参考以下文章