Spring cloud gateway——动态操作路由的网关

本人基于网上的博客,具体参考的哪篇有点久远了,忘了。(致敬原作者)

实现了一个可以动态增加,删除路由的api网关,持久化层用的是内嵌式数据库h2(未实现完全)。

本工程仅作想法实现参考。谢谢

github地址:https://github.com/OwenZhouzhou/spring-gateway-demo

介绍和使用方式参考如下,谢谢。

Spring cloud gateway 一共有15个predicate(断言), 25个filter(过滤器).

Predicates(图不全):

Filters(图不全):

请求流程图如下:

以为为几个例子。

添加路由:

127.0.0.1:8082/route/add   method:post   content-type:application/json

Data示例(id为路由编号,需要唯一,):

1. path断言, 表示访问127.0.0.1:8082/meteor_93实际上访问的是https://blog.csdn.net/meteor_93

{

"id":"path_route",

"predicates":

[

{"name":"Path","args":{"path":"/meteor_93"}

}

],

"uri":"https://blog.csdn.net"

}

  1. After断言,在此时间之后匹配:

[{"filters":[],"id":"after_route","order":0,"predicates":[{"args":{"_genkey_0":"2018-03-18T17:32:58.129+08:00[Asia/Shanghai]"},"name":"After"}],"uri":"https://blog.csdn.net"}]

  1. Before断言,在此时间之前匹配

{"filters":[],"id":"before_route","order":0,"predicates":[{"args":{"_genkey_0":"2020-03-18T17:32:58.129+08:00[Asia/Shanghai]"},"name":"Before"}],"uri":"https://blog.csdn.net"}

  1. Between断言,在此时间区域内

{"filters":[],"id":"between_route","order":0,"predicates":[{"args":{"datetime1":"2022-01-22T17:27:58.907+08:00[Asia/Shanghai]","datetime2":"2022-01-22T17:27:58.909+08:00[Asia/Shanghai]"},"name":"Between"}],"uri":"https://blog.csdn.net"}

  1. Cookie断言

{"filters":[],"id":"cookie_route","order":0,"predicates":[{"args":{"_genkey_0":"chocolate","_genkey_1":"ch.p"},"name":"Cookie"}],"uri":"https://blog.csdn.net"}

.........

 

Filter:

  1. AddRequestHeader Filter, 匹配断言通过后,进入filter

{"filters":[{"args":{"_genkey_0":"X-Request-Foo","_genkey_1":"Bar"},"name":"AddRequestHeader"}],"id":"add_request_header_route","order":0,"predicates":[{"args":{"_genkey_0":"2017-01-20T17:42:47.789-07:00[Asia/Shanghai]"},"name":"After"}],"uri":"https://blog.csdn.net"}

表示在请求头中添加 name = X-Request-Foo,value = Bar  (后台如下获取)

 

删除路由:

127.0.0.1:8082/route/delete/{routeId}    method:get

更新路由:

127.0.0.1:8082/route/update   method:update   content-type:application/json

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值