学架构不能脱离业务!不同的业务系统,产出的系统架构与考量因素不尽相同。比如设计秒杀系统架构时,一般需要考虑 3 个要点。一、如何做到“瞬时响应”,即低延迟、高响应?为了解决这个问题,要从各方面进行优化,比如前端方面的 CDN加速、反向代理、静态资源直接访问,应用服务器端的缓存、消息队列、集群部署、多线程代码优化等。二、如何保障秒杀期间系统不宕机?秒杀用时极短,导致瞬间用户量暴增,请求过多可能会造成数据库宕机、系统响应失败。为保障系统使用期间一切顺利,我们需要在系统发布前采取一些措施,例如自动化测试、预发布验证、数据备份、失效转移、服务调用链路跟踪以及流量监控等。三、如何避免“超卖”问题?秒杀系统最常见的问题莫过于“超卖”了,秒杀 N 份商品,那么最多就只能成交 N 份,不能多也不能少。因此我们会采取分布式限流、分布式缓存、分布式锁、分布式事务等措施保证数据的一致性。