网站访问量大的时候,通常都需要对缓慢的数据做相应的缓存.
常规做法,用户请求API时,缓存业务数据,待下次访问时,直接拿缓存数据返回给客户.如图:

该方案简洁明了,能处理大部分的问题.
随着用户量的进一步增多,系统出现卡顿情况,发现系统增加了热点内容,同时访问的可能性大大增强.
打个比方:数据涌入的速度大于处理速度。原有的方案的弊端就突显出来了:数据初始没有缓存起来,每个请求都是重复的请求,却需要分别处理.
因此,方案需要过滤掉重复的请求,升级如下:

当多个用户同时涌入时,会检查请求的状态,以过滤掉重复的请求,保证了系统的稳定性.
网友评论