目录:
- 自定义网关过滤器的方式:Spring Cloud Gateway系列【7】自定义过滤器_云烟成雨TD的博客-CSDN博客_gateway自定义过滤器
- 继承AbstractGatewayFilterFactory
- 实现GatewayFilter接口
- 注意:网关过滤器和全局过滤器GlobalFilter的区别
- 应用方式一:自定义网关过滤器实现GatewayFilter 接口+数据库存储路由信息
- 应用方式二:自定义网关过滤器继承AbstractGatewayFilterFactory+配置文件存储路由信息
- 思考:
- 那什么应该用全局过滤器?什么时候用网关过滤器呢?比如,用户认证授权,ip拦截应该用什么?
- 有了网关,还需要用serlvet的过滤器filter和springmvc的拦截器Interceptor吗?
- 关于MVC 拦截器 Interceptor、Servlet Filter、spring aop
MVC 拦截器 Interceptor 是一个仅仅针对 “MVC” 这种特定场景的概念。这玩意和Servlet Filter差不多,只能用来拦截通往Controller的请求。 AOP应用就广泛了,任何Spring管理的bean,它public的方法,都能使用AOP来拦截。
- 扩展
- 与nocas整合:spring cloud gateway能读取到naco的服务注册信息,通过这些服务注册信息进行分发:spring cloud gateway和nacos整合 - 大笨象会跳舞 - 博客园
- 限流简单实现:SpringCloud 微服务网关Gateway常用限流算法以及简单实现_liuhenghui5201的博客-CSDN博客_gateway 限流算法
- 项目参考:SpringCloud之服务网关Gateway_intomylife的博客-CSDN博客_springgateway
https://www.jb51.net/article/150507.htm
二. 自定义网关过滤器继承AbstractGatewayFilterFactory+配置文件存储路由信息application.yml
server:
port: 50066
spring:
application:
name: gateway
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
namespace: 795b600f-8115-4ba8-9238-ea9db26b960c
gateway:
discovery:
locator:
enabled: true #开启从注册中心动态创建路由的功能,利用微服务名称进行路由
lower-case-service-id: true
routes:
- id: path_route # 1.路径过滤器
uri: lb://nacos-provide # 将请求交给在nacos注册服务名为nacos-provide的服务
predicates:
- Path=/goods/** # 拦截所有请求路径以goods开头的请求
filters:
- StripPrefix=1 # StripPrefix参数表示在将请求发送到下游之前从请求中剥离的路径个数。
# 本来请求为http://localhost:50066/goods/getGoods,现在要为http://localhost:50066/goods/goods/getGoods
- id: time_route # 2.时间过滤器
uri: https://www.baidu.com/
predicates:
- Path=/after/aaa
- After=2018-01-20T06:06:06+08:00[Asia/Shanghai]
filters:
- Ip=true
- Authorize=true
- id: ip_route # 3.ip过滤器
uri: lb://nacos-provide
predicates:
- RemoteAddr=127.0.100.0
- id: baidu_route
uri: https://www.baidu.com/
predicates:
- Path=/baidu/aaa
filters:
- StripPrefix=1 # StripPrefix参数表示在将请求发送到下游之前从请求中剥离的路径个数。
# 自定义过滤器的第三种方式的配置
- id: ipAndAuthGatewayFilerFactory # 4.自定义ip过滤器 ip+oauth
uri: lb://nacos-feign # 关联feign
predicates:
- Path=/feign/**
filters:
# IpGatewayFilterFactory名字有限制,必须是自定义+GatewayFilterFactory的格式,如Ip+GatewayFilterFactory,Authorize+GatewayFilterFactory
# 关键在下面一句,值为true则开启认证,false则不开启
# 这种配置方式和spring cloud gateway内置的GatewayFilterFactory一致
- Ip=true
- Authorize=true
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)