sentinel接入网关应用_zuul集成Sentinel最新的网关流控组件

本文介绍了如何在Zuul网关中集成Sentinel,通过Nacos动态配置限流规则和API分组。Sentinel 1.6.3新增了网关流控控制台支持,允许在控制台上直接管理和监控API Gateway的规则。文中详细阐述了添加相关依赖、配置文件设置、Nacos规则配置以及启动参数,同时提供了限流规则的测试案例。
摘要由CSDN通过智能技术生成

1、说明

Sentinel 网关流控支持针对不一样的路由和自定义的 API 分组进行流控,支持针对请求属性(如 URL 参数,Client IP,Header 等)进行流控。Sentinel 1.6.3 引入了网关流控控制台的支持,用户能够直接在 Sentinel 控制台上查看 API Gateway 实时的 route 和自定义 API 分组监控,管理网关规则和 API 分组配置。

java

2、功能接入

1. 网关添加sentinel相关的jar依赖

com.alibaba.cloud

spring-cloud-starter-alibaba-sentinel

com.alibaba.csp

sentinel-datasource-nacos

com.alibaba.cloud

spring-cloud-alibaba-sentinel-gateway

2. 网关zuul的sentinel配置

spring:

# sentinel动态配置规则

cloud:

sentinel:

zuul:

enabled: true

order:

pre: 2000

post: 500

error: -100

filter:

enabled: false

datasource:

# 限流

ds1:

nacos:

server-addr: ${zlt.nacos.server-addr}

dataId: ${spring.application.name}-sentinel-gw-flow

groupId: DEFAULT_GROUP

rule-type: gw-flow

# api分组

ds2:

nacos:

server-addr: ${zlt.nacos.server-addr}

dataId: ${spring.application.name}-sentinel-gw-api-group

groupId: DEFAULT_GROUP

rule-type: gw-api-group

绑定

gw-flow(限流)和

gw-api-group(api分组)的规则数据源为

nacos

并指定

nacos上对应的

dataId和

groupId

3. nacos规则配置

3.1. 限流配置gw-flow

Data ID:api-gateway-sentinel-gw-flow

Group:DEFAULT_GROUP

配置内容:spring [

{

"resource": "user",

"count": 0,

"paramItem": {

"parseStrategy": 3,

"fieldName": "name"

}

},

{

"resource": "uaa_api",

"count": 0

}

]

规则1:全部

user的请求只要参数带有

name的都拦截(qps=0),

user为zuul路由配置上的

routeId

规则2:api分组为

uaa_api的全部请求都拦截(qps=0)

3.2. api分组配置gw-api-group

Data ID:api-gateway-sentinel-gw-api-group

Group:DEFAULT_GROUP

配置内容:api [

{

"apiName": "uaa_api",

"predicateItems": [

{

"pattern": "/user/login"

},

{

"pattern": "/api-uaa/oauth/**",

"matchStrategy": 1

}

]

}

]

上面配置意思为知足规则的api都统一分组为

uaa_api

分组规则1:精准匹配

/user/login

分组规则2:前缀匹配

/api-uaa/oauth/**

4. 网关zuul启动参数

须要在接入端原有启动参数的基础上添加-Dcsp.sentinel.app.type=1启动以将您的服务标记为 API Gateway,在接入控制台时您的服务会自动注册为网关类型,而后您便可在控制台配置网关规则和 API 分组,例如:bash

java -Dcsp.sentinel.app.type=1 -jar zuul-gateway.jar

3、sentinel控制台管理

API管理(分组)

网关流控规则

app

4、测试限流api

1. 测试限流规则1

全部user的请求只要参数带有name的都拦截(qps=0)post

不加name参数,能够访问api

后面加上name参数,请求被拦截

2. 测试限流规则2

api分组为uaa_api的全部请求都拦截(qps=0)测试

前缀匹配/api-uaa/oauth/**

精准匹配/user/login

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值