秒杀意味着高并发,但并不是所有的高并发都与秒杀的情况是相同,举例:
1、qq业务 属于高并发,大数据量,但是数据冲突的情况比较少
2、微博业务 属于高并发,大数据量,数据会存在一定的冲突
3、秒杀业务 属于高并发,数据量少,数据会存在很大的冲突
这三种业务都属于高并发,但是由于数据量以及数据冲突情况,其架构方式一般是不同的
秒杀系统架构的两个方法论:
高并发读---------------使用缓存解决
高并发写----------------将请求拦截在数据库之上,只放数据库能承受的并发量或者业务要求的并发量到数据库
高并发场景下缓存的选择:本地缓存,分布式缓存
本地缓存速度快、但是各个节点的数据会不一致
分布式缓存可以保证数据的一致性但是可能会受网络的影响而影响了缓存的效率
请求拦截,可以在多个层次去做:
1、前端页面---按钮置灰
2、代理层
3、站点层
4、服务层