回复“AI”领取超多经典计算机书籍
验证系统所能够承受的最⼤负载是否接近于预期,是否经得住⼤流量的冲击,绝⾮是⼀件易事。有过分布式系统开发经验的同学都应该⾮常清楚,简单对某个接⼝、⼦系统进⾏压测,并不能够准确探测出系统整体的容量⽔位,这是由分布式系统与⽣俱来的复杂性决定的,并且对环境、⽬标都有着极为严苛的要求。
近些年,全链路压测似乎备受追捧,基本上各⼤互联⽹企业,⽐如,阿⾥、京东等都会在⼤促前⼣利⽤⾃研的“军演系统”在线上进⾏压测实战演练,其⽬的就是确保⼤促来临时核⼼链路的整体稳定。在第2章中,笔者重点为⼤家介绍了如何在⼤促前⼣对线上环境实施全链路压测,以及如何做到有指导地在⼤促前进⾏容量规划和性能优化,让系统坚如磐⽯。
像天猫这种级别的⼤型电商⽹站,主要的技术挑战是来⾃庞⼤的⽤⼾规模所带来的⼤流量、⾼并发,以及海量数据,在“双11”“双12”等⼤促场景下尤为明显。如果不对流量进⾏合理管制,肆意放任⼤流量冲击系统,那么将会导致⼀系列的问题出现,⽐如⼀些可⽤的连接资源被耗尽、分布式缓存的容量被撑爆、数据库吞吐量降低,最终必然会导致系统产⽣雪崩效应。在第3章中,笔者重点讲解了如何有效地对流量实施管制,只要我们能够采⽤合理且有效的⽅式管制住峰值流量,使其井然有序地对系统进⾏访问,那么⽆论在任何情况下,系统都能够稳定运⾏。
热点数据的⼤并发读/写操作,可谓是秒杀、限时抢购等场景下最核⼼的2个技术难题。针对热点数据的⼤并发读操作,尽管我们可以通过分布式缓存来提升系统的QPS,但是缓存系统的单点容量还是存在上限的,⼀旦超过临界⽔位,分布式缓存容易被瞬间击穿。⽽热点数据的⼤并发写操作,势必会下潜⾄数据库,那么这就会引起⼤量的线程相互竞争InnoDB的⾏锁,并发越⼤时,等待的线程就越多,这会严重影响数据库的TPS,导致RT线性上升,最终导致系统发⽣雪崩。在第4章中,笔者会重点为⼤家讲解⼤促抢购核⼼技术难题的⼀系列解决⽅案。