webVueBlog / Springboot-Redis-IpLimiter

Springboot + Redis 组件,实现一个分布式接口IP访问限流功能

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Springboot-Redis-IpLimiter

场景

为了防止我们的接口被人恶意访问,比如有人通过JMeter工具频繁访问我们的接口,导致接口响应变慢甚至崩溃

所以我们需要对一些特定的接口进行IP限流,即一定时间内同一IP访问的次数是有限的。

实现原理

用Redis作为限流组件的核心的原理,将用户的IP地址当Key,一段时间内访问次数为value,同时设置该Key过期时间。

比如某接口设置相同IP10秒内请求5次,超过5次不让访问该接口。

技术架构

项目总体技术选型

SpringBoot2.1.3 + Maven3.5.4 + Redis + lombok(插件) 

自定义注解+AOP方式实现。

image

About

Springboot + Redis 组件,实现一个分布式接口IP访问限流功能


Languages

Language:Java 100.0%