【Java面试】什么是令牌桶限流算法()

  本篇文章为你整理了【Java面试】什么是令牌桶限流算法()的详细内容,包含有 【Java面试】什么是令牌桶限流算法,希望能帮助你了解 【Java面试】什么是令牌桶限流算法。

  当面试官问你,“什么是令牌桶限流算法”!

  你知道要怎么回答,才能获得面试官的青睐吗?

  大家好,我是Mic,一个工作了14年的Java程序员。

  关于这个问题,面试官想考察哪些纬度?我们又该怎么回答呢?

  限流策略,是在高并发流量下保护系统稳定性的一种策略。

  所以这个问题,主要是互联网公司会去考察。

  当然,在实际业务开发中,限流无处不在,比如

  线程池、连接池这些通过限制总的并发数量避免资源过度使用。

  Nginx反向代理服务器上通过limit_conn模块限制瞬时并发连接数

  在方法层面通过Sentinel、RateLimiter等工具限制接口的并发请求数量等等

  他们的核心目标,都是限制并发请求数量,避免系统被压垮导致不可用的问题。

  在限流的整个体系里面,我认为有三个比较重要的纬度

  资源,也就是针对什么资源进行限流,比如接口,或者连接等

  阈值,流量峰值达到多少后限制后续流量的访问

  触发限流后的行为,比如熔断、降级等

  限流算法是整个限流实现的核心,不同限流算法,能够对流量的精准控制粒度,以及是否能支持突发流量等情况进行控制常见的限流算法,滑动窗口、令牌桶、漏桶等。

  其中令牌桶是一种能够处理突发流量的限流算法,系统以恒定速率向令牌桶里面添加令牌,然后每个请求都需要从令牌桶去获取令牌才能访问,如果获取不到,就会触发限流。

  所以,我认为这道题考察两个方面

  对限流的整体认知

  了解限流算法对于限流本身的重要性

  令牌桶是一种控制请求访问速率的算法。

  它具体工作原理是:系统以一定速率生成令牌并放到令牌桶里面。

  然后所有的客户端请求进入到系统后,先从令牌桶里面获取令牌,成功获取到令牌表示可以正常访问。

  如果取不到令牌,说明请求流量大于令牌生成速率,也就是并发数超过系统承载的阈值,就会触发限流的动作。

  在流量较低的情况下,令牌桶可以缓存一定数量的令牌,所以令牌桶可以处理瞬时突发流量。

  好了,今天的分享就到这里结束了。

  如果喜欢我的作品,记得点赞、收藏、关注!

  需要整套面试文档扫下方!!!

  版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Mic带你学架构!
 

  如果本篇文章对您有帮助,还请帮忙点个关注和赞,您的坚持是我不断创作的动力。欢迎关注「跟着Mic学架构」公众号公众号获取更多技术干货!

  以上就是【Java面试】什么是令牌桶限流算法()的详细内容,想要了解更多 【Java面试】什么是令牌桶限流算法的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: