Spring 您所在的位置:网站首页 网关服务器 Spring

Spring

2023-03-20 02:14| 来源: 网络整理| 查看: 265

微服务网关Gateway简介1. API网关2. 网关组成2.1 路由转发2.2 过滤器3. Spring Cloud Gateway介绍Spring Cloud Gateway是Spring Cloud 的二级子项目,提供了微服务网关功能,包含:权限安全、监控/指标等功能。3.1 名词解释3.2 执行流程4. Filter内置Filter,都是GatewayFilter实现类自定义GlobalFilter

微服务网关Gateway简介

1. API网关API网关作用就是把各个服务对外提供的API汇聚起来,让外界看起来是一个统一的接口。同时也可在网关中提供额外的功能。

5. 微服务网关Gateway - 图1

2. 网关组成

网关 = 路由转发 + 过滤器(编写额外功能)

2.1 路由转发接收外界请求,通过网关的路由转发,转发到后端的服务上。如果只有这个一个功能看起来和之前学习的Nginx反向代理服务器很像,外界访问nginx,由nginx做负载均衡,

后把请求转发到对应服务器上。

2.2 过滤器网关非常重要的功能就是过滤器。可以把微服务中很多公共的功能都提出到网关的过滤器中,这样就可以实现

复用。如:认证功能、权限校验功能等。

由于网关是统一的入口,所以还可以在网关中实现一些记录或容错等逻辑实现。例如限流、监控、熔断、协议

转换、日志等。

3. Spring Cloud Gateway介绍

Spring Cloud Gateway是Spring Cloud 的二级子项目,提供了微服务网关功能,包含:权限安全、监控/指标等功能。

3.1 名词解释 Route Route中文称为路由,Gateway里面的Route是主要学习内容。一个路由包含ID、URI、Predicate集合、Filter集合。 在Route中ID是自定的,URI就是一个地址。剩下的Predicate和Filter学习明白了,Route就学习清楚了。 Predicate 中文:谓词。谓词时学习Gateway比较重要的一点,简单点理解谓词就是一些附加条件和内容。 Filter 所有生效的Filter都是GatewayFilter的实例。在Gateway运行过程中Filter负责在代理服务“之前”或“之后”去做一些事情。

3.2 执行流程**当Gateway接收到外界请求后,如果Gateway Handler Mapping确认请求与路由匹配(Gateway可以包含多个Route),交给Gateway Web Handler 。之后交给特定的Filter 链进行处理,整个Filter 链的前置(pre)被执行后,执行代理的服·务(Proxied Service),最后执行Filter 链的post部分。返回给Gateway Web Handler,在返回给Gateway Web Handler Mapping,最终返回给客户端。**

5. 微服务网关Gateway - 图2

4. FilterFilter作用:在路由转发到代理服务之前和代理服务返回结果之后额外做的事情。Filter执行了说明谓词条件通过了。

在Spring Cloud Gateway的路由中Filter分为:

内置Filter,都是GatewayFilter实现类

之前使用StripPrefix就是内置Filter,所有内置Filter都实现Gateway接口。使用时filters属性中过滤器名为XXXGatewayFilterFactory的类对应的名称为XXX。

5. 微服务网关Gateway - 图3

自定义GlobalFilter

全局过滤器不需要工厂,也不需要配置,直接对所有的路由都生效。

且在项目中可以配置多个GlobalFilter的实现类。都可以自动执行

@Componentpublic class MyGlobalFilter implements GlobalFilter { private static Logger logger = LoggerFactory.getLogger(MyGlobalFilter.class); @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { //获取请求对象 ServerHttpRequest request = exchange.getRequest(); //日志打印 logger.info("请求路径:{}", request.getURI().toString()); //执行过滤器 return chain.filter(exchange); }}


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有