gateway

Spring Cloud Gateway作为微服务架构中的网关,利用Webflux的reactor-netty实现异步非阻塞操作。其核心功能包括反向代理、鉴权、流量控制及熔断。网关位于负载均衡器之后,微服务之前,通过路由、断言和过滤器处理请求。路由由ID、目标URI和断言组成,过滤器在请求前后的不同阶段执行,如参数校验、权限控制、流量监控等。
摘要由CSDN通过智能技术生成

Spring Cloud Gateway使用的Webflux中的reactor-netty响应式编程组件,底层使用了netty通讯框架。gateway基于异步非阻塞模型上进行开发的。

作用:

  1. 反向代理:可匹配任何请求属性。
  2. 鉴权: 可以对路由指定Predicate(断言)和Filter(过滤)
  3. 流量控制
  4. 熔断:集成Hystrix的断路器功能
  5. 日志监控

位置:

网关的位置在负载均衡之后,在微服务入口之前

核心概念:

  1. 路由 route:构建网关的基本模块,它由ID、目标URI、一系列的断言和过滤器组成,如果断言为true则匹配该路由
  2. 断言 predicate:参考java8的java.util.function.Predicate. 开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数)。如果请求与断言相匹配则进行路由。
  3. 过滤 filter:指的是spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改。

工作流程:

客户端向gateway发送请求,然后在Gateway Handler Mapping中找到与请求相匹配的路由,将其发送到Gateway web handler。

Handler再通过指定的过滤器链来将请求发送到实际的服务执行业务逻辑,然后返回。

过滤器之间用虚线分开是因为过滤器可能会在发送代理请求之前或之后执行业务逻辑。

Fliter在发送代理请求之前的过滤器可以做参数校验、权限校验、流量监控、日志输出、协议转换等。在发送代理请求之后的过滤器可以做相应内容、响应头的修改,日志的输出,流量监控等有着非常重要的作用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值