前言
在前面的限流方案介绍中,我们谈到了网关在微服务体系架构中的重要作用,网关不经具备大家熟知的动态路由,请求拦截等功能外,还可以基于网关实现分布式环境下的限流,下面我们以gatway为例,用代码进行实现一下
实现原理
- 所有经过网关代理的请求会被网关进行拦截
- 基于拦截到的请求,可以以IP、请求参数、方法名等作为限流的维度
- 既然是限流,必然存在一个存储请求信息的地方,我们这里选用redis,简单高效,只需配置一定的策略即可
代码实现逻辑
1、添加pom依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-da