GateWay原理

GateWay原理1.网关Gateway的基本组成GateWay官网地址中文官网Route:路由是GateWay最基础的组件,它包含一个ID,一个目标Url,一些断言集合,一些过滤器集合;如果断言成功的话,路由器就会被匹配Predicate:输入类型是SpringFrameworkServerWebExchange。这使您可以匹配HTTP请求中的所有内容,例如标头或参数。Filter:这些是使用特定工厂构造的SpringFrameworkGatewayFilter实例。在这里,您可以在发送下游请求之前或

1. 网关Gateway的基本组成

GateWay官网地址

中文官网

  • Route:路由是GateWay最基础的组件,它包含一个ID,一个目标Url,一些断言集合,一些过滤器集合;如果断言成功的话,路由器就会被匹配
  • Predicate:输入类型是Spring FrameworkServerWebExchange。这使您可以匹配HTTP请求中的所有内容,例如标头或参数。
  • Filter:这些是使用特定工厂构造的Spring FrameworkGatewayFilter实例。在这里,您可以在发送下游请求之前或之后修改请求和响应。

2. 工作原理

GateWay原理

客户端向Spring Cloud Gateway发出请求。如果网关处理程序映射确定请求与路由匹配,则将其发送到网关Web处理程序。该处理程序通过特定于请求的过滤器链运行请求。筛选器由虚线分隔的原因是,筛选器可以在发送代理请求之前和之后运行逻辑。所有“前置”过滤器逻辑均被执行。然后发出代理请求。发出代理请求后,将运行“后”过滤器逻辑。

3.Predicate的两种配置方式

  • 快捷方式配置

    快捷方式配置由过滤器名称识别,后跟一个等号(=),然后是由逗号分隔的参数值(,

    spring:
      cloud:
        gateway:
          routes:
          - id: after_route
            uri: https://example.org
            predicates:
            - Cookie=mycookie,mycookievalue
    
  • 扩展方式配置

    参数看起来更像带有名称/值对的标准Yaml配置。通常,将有一个name钥匙和一个args钥匙,args键是用于配置断言器或过滤器的键值对的映射

    spring:
      cloud:
        gateway:
          routes:
          - id: after_route
            uri: https://example.org
            predicates:
            - name: Cookie
              args:
                name: mycookie
                regexp: mycookievalue
    
  • properties 配置

    server.port=8080
    spring.application.name=api-gateway
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
    #表明gateway开启服务注册和发现的功能,并且spring cloud gateway自动根据服务发现为每一个服务创建了一个router,这个router将以服务名开头的请求路径转发到对应的服务。
    spring.cloud.gateway.discovery.locator.enabled=true
    #是将请求路径上的服务名配置为小写(因为服务注册的时候,向注册中心注册时将服务名转成大写的了),比如以/service-hi/*的请求路径被路由转发到服务名为service-hi的服务上。
    spring.cloud.gateway.discovery.locator.lower-case-service-id=true
    spring.cloud.gateway.routes[0].id=gateway-service
    spring.cloud.gateway.routes[0].uri=lb://service-provider
    spring.cloud.gateway.routes[0].predicates[0]=Path=/provider/**
    

4. Route Predicate Factories (路由断言工厂)

SpringCloudGateway将路由作为SpringWebFlux HandlerMapping基础设施的一部分进行匹配。SpringCloudGateway包含许多内置的路由断言工厂。所有这些断言都匹配HTTP请求的不同属性。可以将多个路由断言工厂与逻辑and语句组合在一起使用。

  • The After Route Predicate Factory
  • The Before Route Predicate Factory

  • The Between Route Predicate Factory

  • The Cookie Route Predicate Factory

  • The Header Route Predicate Factory

  • The Host Route Predicate Factory

  • The Method Route Predicate Factory

  • The Path Route Predicate Factory(基于请求路径的断言,也是用的最多一个)

今天的文章GateWay原理分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/33272.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注