高并发系统三大利器:缓存、降级(熔断)和限流。
缓存:
很好理解,在高并发系统中,没有缓存,数据库分分钟就被玩跪了。使用缓存不单单能够提升系统访问速度、提高并发访问量,也是保护数据库、保护系统的有效方式。
降级和熔断
两者相似,但是还是有区别的。
降级:针对于整体服务,整体负荷超出整体负载承受能力时,延迟或暂停非重要服务,例如日志收集服务,保证重要服务正常运行。
熔断:针对于单个服务,当某一服务出现了过载现象,为防止造成整个系统故障,从而采用的一种保护措施。直接关闭该服务(比较暴力)或者保证部分请求成功,另一部分直接返回失败(不占用服务资源),eg.如果5秒钟之内连续请求失败次数达到20次,那么触发熔断机制,过滤60%的请求。
限流:
限流可以认为服务降级的一种,限流就是限制系统的访问量已达到保护系统的目的。
常见的限流算法有:计数器、漏桶和令牌桶算法。
计数器:
一个典型的应用场景就是规定在固定的时间内,只允许通过固定数量的请求,如规定在一分钟内只允许处理100个请求。
基本思想:有一个counter。当一个请求到来的时候,首先判断现在是否是处于新的时间段里。如果是在新的时间段了,就可以把counter清0,然后对当前这个请求进行计数加一操作。假如没有处于新的时间段,则判断当前的counter的数量是否超过规定的数量,如100。超过了就丢弃请求,否则对计数器加一,允许该请求通过。
存在问题ÿ