网关限流-路由维度|学习笔记

简介: 快速学习网关限流-路由维度

开发者学堂课程【全面讲解 Spring Cloud Alibaba 技术栈(知识精讲+项目实战)第三阶段网关限流-路由维度】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/685/detail/11895


网关限流-路由维度

内容介绍

一、网关限流

二、代码编写

三、限流模拟


一、网关限流

网关是所有请求的公共入口,所以可以在网关进行限流,而且限流的方式也很多,我们本次采用前面学过的 Sentinel 组件来实现网关的限流。Sentinel 支持对SpringCloud Gateway、Zuul 等主流网关进行限流。

image.png

Sentinel 网关限流公共模块(API Gateway Adapter Common):

请求属性解析   网关规则管理   网关规则检查

调用参数组装   自定义 API 分组管理   API 路径匹配

Sentinel 网关支持的网关:NETFLIXZuul 和 Spring Cloud Gateway  

从1.6.0版本开始,Sentinel 提供了 SpringCloud Gateway 的适配模块,可以提供两种资源维度的限流方式。

route 维度:

即在 Spring 配置文件中配置的路由条目,资源名为对应的 routeld,可以具体到某一路由上限流

e自定义 API 维度:

用户可以利用 Sentinel 提供的 API 来自定义一些 API 分组,可以以 API 划分分组。


二、代码编写

(1)导入依赖

I<dependency>

<groupId>com.alibaba.csp</groupId>

<artifactId>sentinel-spring-cloud-gateway-adapter</

artifactId>

</dependency>

(2)编写配置类

基于 Sentinel 的 Gateway 限流是通过其提供的 Filter 来完成的,使用时只需注入对应的 SentinelGatewayFilter

实例以及 SentinelGatewayBlockExceptionHandler 实例即可。

@Configuration

public class GatewayConfiguration

private final List viewResolvers;

private final ServerCodecConfigurer serverCodecConfigurer

;

// 初始化一个限流的过滤器

@Bean

@Order(Ordered.HIGHEST_PRECEDENCE)

public GlobalFilter sentinelGatewayFilter()

return new SentinelGatewayFilter();

// 配置初始化的限流参数

@PostConstruct

public void initGatewayRules() (

Set rules = new HashSet<>();

rules.add(

newGatewayF1owRule( resource: "product_route") //资源名称,对应路由 id

.setCount(1) // 限流國值

.setIntervalSec1)//统计时间窗口,单位是秒,默认是 1秒

);

GatewayRuleManager.loadRules(rules);

// 配置限流的异常处理器

@Bean

@Order (Ordered.HIGHEST PRECEDENCE)

Public SentinelGatewayBlockExceptionHandler

sentinelGatewayBlockExceptionHandler(

return new SentinelGatewayBlockExceptionHandler

(viewResolvers, serverCodecConfigurer);

// 自定义限流异常页面

@PostConstruct

public void initBlockHandlers() (

BlockRequestHandler blockRequestHandler = new BlockRequestHandler((

public Mono handleRequest(ServerWebExchange serverWebExchange, Throwable throwable) (Map map = new HashMap<>();

map.put("code",0);

map.put("message",“接口被限流了");

return ServerResponse.status(HttpStatus.OK).

contentType(MediaType.APPLICATION_JSON_UTF8).

body (BodyInserters.fromobject(map));

GatewayCallbackManager.setBlockHandler(blockRequestHandler);

三、限流模拟

创建 orderApplication,快速刷新查看效果,发现已经被限流了。

再访问 order,刷新后没有限流,针对第一个维度,就做完了。

相关文章
|
算法 NoSQL API
SpringCloud&Gateway网关限流
SpringCloud&Gateway网关限流
1164 7
|
Linux
Linux网关路由配置
Linux网关路由配置
388 0
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
1256 0
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
269 4
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
【10月更文挑战第27天】计算机主机网关的作用类似于小区传达室的李大爷,负责将内部网络的请求转发到外部网络。当小区内的小不点想与外面的小明通话时,必须通过李大爷(网关)进行联系。网关不仅帮助内部设备与外部通信,还负责路由选择,确保数据包高效传输。此外,网关还参与路由表的维护和更新,确保网络路径的准确性。
267 2
|
网络协议 网络虚拟化 网络架构
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
250 1
|
监控 安全 网络安全
|
监控 网络协议 数据安全/隐私保护
vos3000外呼系统如何检查落地网关配置正常,路由分析
使用VOS3000外呼系统时,确保呼叫畅通的关键在于检查落地网关配置和进行路由分析。具体步骤包括:登录管理界面,检查网关状态和配置,配置外呼规则,测试拨打电话,以及分析日志和报告。通过这些步骤,可以确保系统稳定运行,提高外呼成功率和通话质量。
|
网络协议 数据安全/隐私保护 网络虚拟化
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
248 0
|
负载均衡 Java 数据安全/隐私保护
网关路由-路由属性
网关路由-路由属性
299 1

热门文章

最新文章