学而不思则罔,思而不学则殆!每天静下心来反思几分钟,你将受益匪浅,感悟良多。接下来,我们将推出“秒杀系统架构设计”系列教程。学习不只是敲代码,还要学会反思总结。这里是【CODE学院】,我们最关心的是您能学到什么。如果你愿意让《我们》陪你一起学习,可以关注我,转发文本。
前言
在开发过程中,我们应该要有过硬的架构设计能力。作为一名程序员,在公司业务快速增长过程中,总会遇到一些大并发大流量的网站架构设计和优化经验,尤其是“秒杀”这个场景。在秒杀的过程中,请求洪峰一瞬间达到系统瓶颈,如果我们不对系统做极致的优化,业务就会一下子处于瘫痪宕机状态。下面给大家介绍系统“秒杀”业务的优化思路。
系统并发读写,请求高度隔离
秒杀其实就是解决两个问题,一个是并发读,一个是并发写。并发度的核心优化力量是尽量减少用户到服务器来“读”数据,或者是读少量的数据。并发写的处理原则也一样,它要求数据库独立出来,尽量避免放在业务服务器,或者放在缓存里(redis,memcache)。
“秒杀“三字诀,稳、准、快
所谓“稳”,就是整个系统架构要满足高可用,流量符合预期时肯定要稳定,就是超出预期时也同样要保证业务系统稳定运行,保证秒杀活动顺利完成,即保证商品卖出去,这个是基本前提。
然后就是“准”,活动秒杀10台 iphone XR,那就只能成交10台,多一台少一台都不行。所以“准”就是要求保证数据的一致性。
最后再看“快”,“快“是最好理解的,就是系统性能要足够高,否则你怎么支撑这么大的流量呢?不光要求服务器的性能优化极致,也要求请求链路的高度协同配合。
所以从技术角度上看“稳”、“准”、“快,就是对应架构设计的高可用,一致性和高性能要求。
高性能要诀
- 数据动静分离
- 热点数据的发现与隔离
- 请求的削峰与分层过滤
- 服务端的极致优化
一致性准则
- 减库存的执行时机
- 事务排它锁机制
- 队列的选择
高可用
- 服务器优化
- 缓存集群应用
- plan B 兜底方案
最后,很幸运在这里遇到你,接下来将围绕以上的知识要点,详细讲解,大并发,高性能,高可用的秒杀系统,期待与你一起同行,赶快关注我们吧!
本文暂时没有评论,来添加一个吧(●'◡'●)