限流(服务降级):基于自定义注解+切面的方式实现接口调用频率限制

作者 : admin 本文共436个字,预计阅读时间需要2分钟 发布时间: 2024-06-9 共2人阅读

文章目录

  • 引言
  • I 基于GuavaCache实现频率限制
    • 1.1 基于LoadingCache实现(灵活控制,高效率)【推荐】
    • 1.2 基于LoadingCache自定义RateLimiter (无法灵活控制限制时间范围)
    • 1.3 基于google的RateLimiter实现(效率低)
  • II 基于Redis实现限流

引言

背景:提供接口给下游(外部厂商)的接口,通过控制IP地址来限制接口的调用频率,可以有效保护系统的稳定性和安全性。
限流(服务降级):基于自定义注解+切面的方式实现接口调用频率限制插图

限制接口调用频率实现方案:

  • 基于自定义注解+切面 的方式实现
  • 使用Guava Cache/redis/自定义缓存工具类(ConcurrentHashMap)来记录请求频率,并通过设定阈值来限制请求次数。
  1. 分布式缓存:redis、memcached
  2. 本地(进程内)缓存:ehcache、GuavaCache(Guava Cache是单个应用运行时的本地缓存,支持高并发且线程安全的)、Caffeine
  • 定期清理缓存的方法

限流(服务降级):基于自定义注解+切面的方式实现接口调用频率限制插图(1)

I 基于GuavaCache实现频率限制

<dependency>
    
本站无任何商业行为
个人在线分享-虚灵IT资料分享 » 限流(服务降级):基于自定义注解+切面的方式实现接口调用频率限制
E-->