限流概念
先聊一下生态系统,一个生态系统的能力是有限的,比如说只能容纳多少生物,多少物质消耗,生态系统才能维持平衡。
微服务集群相当于生态系统,限流阈值是当前系统所能处理的最大能力,所以限流是为了系统稳定性。
个性化一点就是,某些接口,动态修改,实现从入口限制住流量。
常见限流:线程池,接口调用限制,网络连接限制,Semaphore。
限流方法
1.计数器(对段时间内请求进行累加,超过阈值责拒绝。实现简单,缺点是可能造成瞬时的流量峰值,不匀速。)
2.时间滑动窗口(将段时间分为多个小窗口进行累加,超过阈值则拒绝,大概率解决了瞬时峰值问题,但解决不彻底。)
3.漏桶(限制请求速率,始终匀速,不允许任何突发流量,绝对匀速。)
4.令牌桶(始终匀速往令牌桶放入令牌,控制了最大阈值,消费从桶内取值,这时就允许突发流量了,但却不会超过阈值。)
限流选型
Nginx+lua
Redis+lua
Gateway
Hystrix
Sentinel
Tomcat
更具体的情况点看自己的架构了。
Hystrix and Sentinel技术选型分析
Hystrix 的关注点在于以隔离和熔断为主的容错机制,超时或被熔断的调用将会快速失败,并可以提供 fallback 机制。
而Sentinel的侧重点在于:
多样化的流量控制
熔断降级
系统负载保护
实时监控和控制台
标签:阈值,Hystrix,流量,限流,Sentinel,匀速
From: https://www.cnblogs.com/li-xiaotian/p/16616750.html