Springcloud学习之Gateway

一:gateway简介

  Spring Cloud的⼀个全新项⽬,⽬标是取代Netflflix Zuul,它基于Spring5.0+SpringBoot2.0+WebFlux(基于⾼性能的Reactor模式响应式通信框架Netty,异步⾮阻塞模型)等技术开发,性能⾼于Zuul(1.0基于BIO, 2.0基于Netty),官⽅测试,GateWay是Zuul的1.6倍,旨在为微服务架构提供⼀种简单有效的统⼀的API路由管理⽅式。不仅提供统⼀的路由⽅式(反向代理)并且基于 Filter(定义过滤器对请求过滤,完成⼀些功能) 链的⽅式提供了⽹关基本的功能,例如:鉴权、流量控制、熔断、路径重写、⽇志监控等。

二:gateway在微服务架构中角色担当

三:gateway 核心概念

  路由(route): ⽹关最基础、⽐较基础的⼯作单元。路由由⼀个ID、⼀个⽬标URL(最终路由到的地址)、⼀系列的断⾔(匹配条件判断)和Filter过滤器(精细化控制)组成。如果断⾔为true,则匹配该路由。

  断⾔(predicates):参考了Java8中的断⾔java.util.function.Predicate,开发⼈员可以匹配Http请求中所有内容(包括请求头、请求参数等)(类似于nginx中的location匹配⼀样),如果断⾔与请求相匹配则由。
  过滤器(fifilter):⼀个标准的Spring webFilter,使⽤过滤器,可以在请求之前或者之后执⾏业务逻辑。
四:gateway入门案例
  4.1:创建项目POM文件中引入下列依赖
  

   4.2:编写项目启动类

  

  4.3:添加gateway配置

   

 五:gateway 动态路由

  

六:gateway 过滤器

  6.1:过滤器区分

    从过滤器生命周期区分,过滤器分为pre 和 post两种

      pre:请求被路由之前调⽤。我们可利⽤这种过滤器实现身份验证、在集群中选择 请求的微服务、记录调试信息等.

      post:路由到微服务以后执⾏。这种过滤器可⽤来为响应添加标准的 HTTP Header、收集统计信息和指标、将响应从微服务发送给客户端

    从过滤器类型的⻆度区分,过滤器分为GateWayFilter和GlobalFilter两种

      GateWayFilter:应⽤到单个路由路由上

      GlobalFilter:应⽤到所有的路由上

  6.2:⾃定义全局过滤器实现IP访问限制(⿊⽩名单)

    

七:gateway高可用

  只需要在负载均衡服务器中配置反向代理地址即可

  

 

posted @ 2021-06-10 15:04  十二A~  阅读(221)  评论(0)    收藏  举报