版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
在开发高并发系统时,有三把利器用来保护系统:缓存、降级和限流。缓存这个概念是大家共识的,没有什么异议,但在好些文章中我看有人会把降级和限流两个概念混淆在一起,我认为这样理解是不对的,贴下我认为正确的解释:
服务降级:
服务降级是在服务器压力陡增的情况下,利用有限资源,根据当前业务情况,关闭某些服务接口或者页面,以此释放服务器资源以保证核心任务的正常运行。
服务限流:
流量控制本质上是减小访问量,而服务处理能力不变;而服务降级本质上是降低了部分服务的处理能力,增强另一部分服务处理能力,而访问量不变。
以下主要介绍几种常见的服务限流算法和优缺点,以及单机限流和分布式限流。没有哪种算法是最好的或者是最差的,具体要根据实际业务场景决定使用哪种实现方式,本质都是提高功能的性价比,利用尽可能小的开发成本,产生尽可能大的收益。