【spring系列】Spring Cloud Gateway Actuator
Spring Cloud Gateway动态路由使用Spring Cloud Gateway 需要注意的地方:Spring Cloud Gateway是基于Spring Boot 2.x, Spring WebFlux和Project Reactor 构建的。因此,在使用Spring Cloud Gateway时,许多不熟悉的同步库(例如,Spring Data和Spring Secur...
Spring Cloud 执行器API是通过Actuator自定义控制器端点,他可以在网关已经启动的时候对网关的路径进行增删改操作。
gateway 端点允许和Spring Cloud 网关交互,但是必须需要公开端点;
使用Spring Cloud Gateway 需要注意的地方:
Spring Cloud Gateway是基于Spring Boot 2.x, Spring WebFlux和Project Reactor 构建的。因此,在使用Spring Cloud Gateway时,许多不熟悉的同步库(例如,Spring Data和Spring Security)和模式可能不适用。**
Spring Cloud Gateway需要Spring Boot和Spring Webflux提供的Netty运行时。它不能在传统的Servlet容器中或作为WAR构建。
一定要记住只有Spring Boot2.0才支持!!
公开网关端点
management:
endpoint:
gateway:
enabled: true
endpoints:
web:
exposure:
include: gateway
简单配置路由规则
spring:
cloud:
gateway:
routes:
- id: get_route
uri: http://localhost:8081
predicates:
- Method=GET
- id: post_route
uri: http://localhost:8083
predicates:
- Method=POST
get方式的请求转发到本地8081端口;
post的请求转发到本地8083端口;
yml格式要注意别写错了,这里推荐一个yml和properties进行转换的网站。
https://www.toyaml.com/index.html
通过执行器查看路由规则
通过GET方式 请求/actuator/gateway/routes 进行检索
[
{
"route_id":"get_route",
"route_definition":{
"id":"get_route",
"predicates":[
{
"name":"Method",
"args":{
"_genkey_0":"GET"
}
}
],
"filters":[
],
"uri":"http://localhost:8081",
"metadata":{
},
"order":0
},
"order":0
},
{
"route_id":"post_route",
"route_definition":{
"id":"post_route",
"predicates":[
{
"name":"Method",
"args":{
"_genkey_0":"POST"
}
}
],
"filters":[
],
"uri":"http://localhost:8083",
"metadata":{
},
"order":0
},
"order":0
}
]
| 路径 | 类型 | 描述 |
|---|---|---|
route_id |
String | 路线编号。 |
route_object.predicate |
Object | 路由谓词。 |
route_object.filters |
Array | GatewayFilter工厂使用的路由。 |
order |
Number | 路线顺序。 |
创建路由
POST 通过/gateway/routes/{id_route_to_create}接口进行创建路由;
地址:/actuator/gateway/routes/first_route
例1:GET请求到本地8081端口
{
"id": "first_route",
"predicates": [{
"name": "Method",
"args": {"_genkey_0":"GET"}
}],
"uri": "http://localhost:8081",
"order": 0
}
所有get请求转发到http://localhost:8081这个地址上去;
删除路由规则
DELETE方式请求/actuator/gateway/routes/{id_route_to_create},即如上的/actuator/gateway/routes/first_route地址进行删除;
刷新路由缓存
路由规则创建和删除之后不会立即生效,需要刷新才可以生效;
POST请求/actuator/gateway/refresh 地址进行刷新,该请求返回200,但没有响应主体。
其他接口
| ID | HTTP方法 | 描述 |
|---|---|---|
globalfilters |
GET | 显示应用于路由的全局过滤器列表。 |
routefilters |
GET | 显示应用于特定路由的GatewayFilter工厂列表。 |
refresh |
POST | 清除路由缓存。 |
routes |
GET | 显示网关中定义的路由列表。 |
routes/{id} |
GET | 显示有关特定路线的信息。 |
routes/{id} |
POST | 将新路由添加到网关。 |
routes/{id} |
DELETE | 从网关删除现有路由。 |
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)