底层使用的是: WebFlux+Netty 异步非阻塞的支持

路由转发+执行过滤器链

如果引入了Getway.jar包 就要剔除 starter-web .jar包

步骤一:
创建一个网关的微服务:
引入jar包
修改pom文件并且设置路由加入到Eureka注册中心
image.png
效果:
image.png

上面是通过配置文件进行路由网关,另外的一种方式就是通过代码:
image.png

GetWay流程:

Gayeway网关 - 图4

  • 客户端向Spring Cloud GateWay发出请求,然后再GateWay Handler Mapping中找到与请求相匹配的路由(映射到相关的路由上),将其发生到GateWay Web Handler(到达相关的微服务)
  • Handler 再通过指定的的过滤器链来将请求发送到我们实际的服务执行业务逻辑,然后返回。
  • 过滤器之间使用虚线分开是因为过滤器可能会在发送代理请求之前(”pre”) 或之后(“post”)执行业务逻辑。
  • Filter在“pre”类型的过滤器可以做参数校验,权限校验,流量监控,日志输出,协议转换等。
  • 在“post”类型的过滤器可以做响应内容、响应头的修改,日志的输出,流量监控等有者非常重要的作用。

    过滤器: 全局过滤器, 自定义过滤器,网关过滤器
    核心逻辑:路由转发+执行过滤链

三个组件:路由,断言,过滤

用sentinel 对 getway做限流的算法: