上文中介绍了单实例下如何在业务接口层做限流,本文主要介绍分布式场景下限流的方案,以及什么样的分布式场景下需要在业务层加限流而不是接入层; 并且结合开源的ratelimiter-spring-boot-starter在新窗口打开为例,作者是kailing, 学习思路+代码封装+starter封装。
- SpringBoot接口 - 如何实现接口限流之分布式
# 准备知识点
上文我们提到了分布式限流的思路:
我们需要分布式限流和接入层限流来进行全局限流。
- redis+lua实现中的lua脚本
- 使用Nginx+Lua实现的Lua脚本
- 使用 OpenResty 开源的限流方案
- 限流框架,比如Sentinel实现降级限流熔断
# 实现思路之redis+lua封装
redis+lua是代码层实现较为常见的方案,网上有很多的封装, 我这里找一个给你分享下。以