简单使用Gateway、断言Predicate、过滤器

一、Gateway简介

在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端(pc androud ios 平板)要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。
在这里插入图片描述

这样的架构,会存在着诸多的问题:

  • 客户端多次请求不同的微服务,增加客户端代码或配置编写的复杂性
  • 认证复杂,每个服务都需要独立认证。
  • 存在跨域请求,在一定场景下处理相对复杂。
所谓的API网关,就是指系统的统一入口,它封装了应用程序的内部结构,为客户端提供统一服 务,一些与业务本身功能无关的公共逻辑可以在这里实现,诸如认证、鉴权、监控(黑白名单)、路由转发等等。 

添加上API网关之后,系统的架构图变成了如下所示:

在这里插入图片描述

在业界比较流行的网关,有下面这些:

  • Ngnix+lua 使用nginx的反向代理和负载均衡可实现对api服务器的负载均衡及高可用
  • Kong 基于Nginx+Lua开发,性能高,稳定,有多个可用的插件(限流、鉴权等等)可以开箱即用。 问 题:只支持Http协议;二次开发,自由扩展困难;提供管理API,缺乏更易用的管控、配置方式。
  • Zuul 1.0 Netflix开源的网关,功能丰富,使用JAVA开发,易于二次开发 问题:缺乏管控,无法动态配置;依赖组件较多;处理Http请求依赖的是Web容器,性能不如Nginx
  • Spring Cloud Gateway Spring公司为了替换Zuul而开发的网关服务,将在下面具体介绍。 注意:SpringCloud alibaba技术栈中并没有提供自己的网关,我们可以采用Spring Cloud Gateway来做网关
Spring Cloud Gateway是Spring公司基于Spring 5.0,Spring Boot 2.0 和 Project Reactor 等术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。它的目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如&#x
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Cloud GatewaySpring Cloud生态系统中的一个核心组件,它提供了一种基于路由的方式来构建微服务架构中的边缘服务。 Spring Cloud Gateway的工作原理如下: 1. 接收请求:当客户端发起一个HTTP请求时,它会首先到达Spring Cloud GatewayGateway作为边缘服务,充当了客户端与后端微服务之间的交互通道。 2. 路由转发:Gateway会根据请求中的路径,使用路由规则将请求转发到不同的后端微服务实例。路由规则可以配置在一个或多个路由器函数中,这些函数通过Predicate断言)来匹配请求,并通过Filter(过滤器)来处理请求。 3. 验证和过滤:在路由转发之前,Gateway可以执行一系列的过滤器来对请求进行验证和处理。过滤器可以用于添加认证、鉴权、日志记录、流量控制等功能。 4. 请求处理:一旦路由规则和过滤器处理完成,Gateway会将请求转发到目标微服务实例并获取结果响应。响应可以经过过滤器链再次处理后再返回给客户端。 Spring Cloud Gateway的工作原理说明了它是如何接收和处理客户端请求的。通过路由规则和过滤器的配置,我们可以灵活地定义网关的行为,并将请求转发到后端的微服务实例。这种方式使得我们能够实现统一的边缘服务管理和功能扩展,提高了系统的可维护性和扩展性。同时,Gateway还提供了一些辅助功能,如熔断、限流等,帮助我们更好地保护后端微服务,提高系统的稳定性和可用性。 ### 回答2: Spring Cloud GatewaySpring Cloud的一个微服务网关,它提供了统一的路由和过滤器功能,用于管理和控制微服务的请求流量。 工作原理如下: 1. 定义路由规则:用户在配置文件中定义路由规则,指定请求的URL路径和微服务的目标地址。 2. 接收请求:当客户端发起一个请求时,请求首先到达Spring Cloud Gateway。 3. 匹配路由规则:Gateway会根据用户定义的路由规则进行匹配,找到与请求路径匹配的路由。 4. 转发请求:一旦找到匹配的路由,Gateway将原始请求转发到目标微服务的地址。 5. 进行过滤器处理:在请求转发之前、之后或者错误时,Gateway可以通过一系列的过滤器对请求进行处理。过滤器可以对请求进行鉴权、限流、重试等操作,同时也可以对响应进行处理。 6. 返回响应:目标微服务将处理后的结果返回给GatewayGateway再将结果返回给客户端。 Spring Cloud Gateway具有高性能、灵活的特点,可以替代传统的Zuul网关。它支持异步非阻塞的IO操作,能够处理大量的并发请求。同时,由于采用了Spring5和Reactor核心库,它具有更低的内存占用和更好的响应时间。 总结来说,Spring Cloud Gateway的工作原理是:根据用户定义的路由规则匹配请求,转发到目标微服务并进行过滤器处理,最终将结果返回给客户端。 ### 回答3: Spring Cloud Gateway是一个基于Spring Framework的微服务网关解决方案,用于实现API路由,请求转发,过滤和熔断等功能。它可以作为一个独立的服务,将所有的请求发送到后端的微服务集群中,并提供了强大的路由和过滤器机制。 Spring Cloud Gateway的工作原理如下: 1. 客户端发起请求到Spring Cloud Gateway。 2. Gateway首先会通过路由(Route)匹配器,根据请求URL和配置的路由规则,进行路由转发。这些路由规则可以通过YAML或Java进行配置,并且可以动态刷新。 3. 如果匹配到对应的路由规则,Gateway会将请求转发到指定的微服务实例。 4. 在进行请求转发之前,Gateway会通过过滤器(Filter)链对请求进行预处理。过滤器可以完成各种操作,如认证、鉴权、请求日志、请求转换等。可以根据具体需求,自定义过滤器。 5. 请求转发到目标微服务实例后,Gateway会等待响应,并在响应返回之后进行后续处理。 6. 在响应返回之前,Gateway可以再次通过过滤器链对响应进行处理,如响应日志、响应转换等。 7. 最终,Gateway将处理结果返回给客户端。 Spring Cloud Gateway具有以下特点: 1. 基于异步非阻塞的响应式编程模型,性能较高。 2. 支持动态路由和动态刷新。 3. 提供了多种内置的过滤器和扩展机制,可实现各种自定义功能。 4. 集成了Hystrix,可提供熔断和降级功能。 5. 支持高可用和负载均衡。 总之,Spring Cloud Gateway是一个功能强大且具有良好扩展性的微服务网关,通过路由和过滤器机制,实现了请求路由、请求过滤和熔断等功能,能够将所有的请求转发到后端的微服务集群中,并对请求和响应进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值