由于业务应用系统的负载能力有限,为了防止非预期的请求对系统压力过大而拖垮业务应用系统,必须采取流量控制措施。
服务接口的流量控制策略:分流、降级、限流 熔断
分流:扩容机器、单元化通道
降级:关闭非核心接口,保证核心接口链路的正常运行
限流:业务系统限流、数据库限流
常见的限流算法有:令牌桶、漏桶、Redis计数器。
下面用图说话吧 令牌桶算法
谷歌的guava库已经帮我们实现好了 有兴趣的朋友可以去看看源码
@Component
public class GuavaLimitSimpalDemo {
private static final RateLimiter rateLimit