SpringCloud系列之网关gateway-14.网关层的其他妙用 - 限流

SpringCloud系列之网关gateway-14.网关层的其他妙用 - 限流,第1张

这里采用令牌桶计数的方式做限流,总共分三步

我们的Best Practice是基于Redis来实现限流,因此要保证本地启动了Redis服务。同时将下列配置加入到Gateway的配置文件中:

这里是配置Redis连接信息的,假如你不配置的话,Gateway也会尝试用默认配置项来连接Redis。但如果你在Redis配置信息中提供了错误的IP或者Port的话,调用方法时依然会成功,不过限流功能就失效了,因为底层的Netty服务无法连接到Redis,也就无法提供限流支持。但Gateway为了保证服务可用性,限流功能的异常并不会阻碍正常的方法调用。

Gateway的限流组件要求定义一个Key Resolver用来对每次路由请求生成一个Key,这个Key就是一个限流分组的标识,每个Key相当于一个令牌桶。假如我们限定了一个服务每秒只能被调用3次,这个限制会对不同的Key单独计数,我们把调用方机器的Host Name作为限流Key,那么来自同一台机器的调用将落到同一个Key下面,也就是说在这个场景下,每台机器都独立计算单位时间调用量。

创建Key Resolver的方式很简单:

上面的例子创建了基于Host Name的令牌生成器,我们可以根据自己的业务来选择合适的Key,比如说可以在接口层面做限流(使用接口的Path作为Key),还可以从Request中提取业务字段作为Key(比如用户ID等)。

在上面的限流配置中,我们主要关注最后3行中的属性:

 key-resolver:这里注入的就是在上一步中我们定义的Key Resolver,它使用SpEL表达式从Spring上下文中获取指定Bean

 replenishRate:令牌桶每秒的平均填充速度

 burstCapacity:令牌桶总量

假如我们不想依赖Redis的话,还有其他选择方案吗?必须有,但是要靠大家自己动动手。如果大家想借助其他存储介质实现限流,可以参考RedisRateLimiter这个类的实现,通过继承AbstractRateLimiter来创建一个自定义的计数器。

12 认证服务器依赖

13 配置文件 applicationyml

14 认证服务器配置(核心类AuthorizationServerConfigurerAdapter)

认证服务器配置类必须继承AuthorizationServerConfigurerAdapter类

141 内存存储token方案

142 配置Spring Security的安全认证

143 自定义ClientDetailsService实现类

144 相关实体类

15 gateway 网关

151 pom依赖

152 applicationyml配置文件

153 security安全配置

154 gateway全局过滤器

155 其他类

16 资源服务器

161 依赖配置

162 资源服务器配置

继承ResourceServerConfigurerAdapter类

安全配置继承WebSecurityConfigurerAdapter

163 token过滤器

获取从网关处转发的token,填充到认证的安全上下文中,实现身份权限识别

22 安全配置

23 其他配置

24 身份信息过滤

前面我们了解了Gateway组件的过滤器,这一节我们就探讨一下Gateway在分布式环境中的一个具体用例-用户鉴权。

从我们开始学JavaEE的时候,就被洗脑式灌输了一种权限验证的标准做法,那就是将用户的登录状态保存到>

很多种原因: 1DNS可能没设置,打开网络连接,点属性,看TCP/IP协议,看看是不是自动获取IP,如果不是自动获取IP的话,IP地址,掩码,网关,DNS一个都不能少,少一个的话就无法正常上互联网;如果是自动获取IP,那么你点开始-运行-CMD

以上就是关于SpringCloud系列之网关gateway-14.网关层的其他妙用 - 限流全部的内容,包括:SpringCloud系列之网关gateway-14.网关层的其他妙用 - 限流、security + oauth2 + jwt + gateway 实现统一身份认证和鉴权(基础)、SpringCloud系列之网关gateway-11.权限认证-分布式session替代方案等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9561414.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存