本文首发于微信公众号「Tomcat那些事儿」,关注阅读更多精彩文章。
随着 Spring Cloud 等「开箱即用」组件的普及, 微服务变的越来越流行。而微服务中的稳定性则显得更加重要。因此,为了保证系统的稳定性,鲁棒性。
在应用开发中,我们一般会通过熔断、限流等方式来保障服务的稳定性。
本次我们重点来看看限制,限流中的「自适应」限流 - 根据服务器的性能等各个方面自动评估,达到最优的效果。
我们知道,随着请求流量的增加,服务器的资源被占用越来越多,所有的请求的 latency 会越来越大,最终请求超过系统的承受能力时,会出现请求超时、失败,直至最后服务挂掉。
而保证服务的可用性,减少系统服务的中断时间,是应用开发追求的目标。
本次我们主要来谈谈限流。
像上图所示,一般系统处理请求,如果超过当前的处理量,要么进入队列等待,要么被拒绝访问。这个了解线程池的设计原理的朋友应该都清楚。如果一个系统不设置任何限制