Bucket4j集成Caffeine缓存时限流功能失效的问题求助
Bucket4j集成Caffeine缓存时限流功能失效的问题求助
大家好,我最近在项目里集成Bucket4j做接口限流,一开始用默认缓存(推测是JCache)的时候,限流功能是正常工作的,当时的配置如下:
spring: ... cache: cache-names: rate_limit_buckets bucket4j: enabled: true filters: - cache-name: rate_limit_bucketss url: /api/notification-admin/images rate-limits: - cache-key: getRemoteAddr() bandwidths: - capacity: 1 time: 100 unit: seconds
但当我换成Caffeine作为缓存实现后,奇怪的问题出现了:应用能正常启动,但限流功能完全失效。更离谱的是,我把cache-name改成任意随机值,应用依然能启动,完全没有校验缓存名称是否存在的迹象。
(补充说明:如果我不指定Caffeine作为缓存类型,应用根本启动不起来,所以必须用Caffeine,但现在用了之后限流就彻底不起作用了。)
我试过好几种配置Caffeine的方式,比如写自定义配置类、借助caffeine-boot的自动化配置,但结果都差不多——要么限流完全不生效,要么看起来系统直接忽略了我配置的Caffeine参数。
有没有大佬能给我一些排查思路或者解决建议呀?谢谢大家!
备注:内容来源于stack exchange,提问作者user20918149
相关产品推荐
相关产品推荐

