服务网关 Gateway

1.什么是 API 网关?

API 网关是一种中间层服务器,用于集中管理、保护和路由对后端服务的访问。它充当了客户端与后端服务之间的入口点,提供了一组统一的接口来管理和控制 API 的访问。

2.API 网关的主要功能包括:

  1. 请求转发:将请求转发到目标微服务。

  2. 负载均衡:根据各个微服务实例的负载情况或者具体的负载均衡策略配置对请求实现动态的负载均衡。

  3. 安全认证:对用户请求进行身份验证并仅允许可信客户端访问 API,并且还能够使用类似 RBAC 等方式来授权。

  4. 参数校验:支持参数映射与校验逻辑。

  5. 日志记录:记录所有请求的行为日志供后续使用。

  6. 监控告警:从业务指标、机器指标、JVM 指标等方面进行监控并提供配套的告警机制。

3.Spring Cloud Gateway 核心概念?

  • Route(路由):它定义了请求的匹配规则和转发目标。通过配置路由,可以将请求映射到后端的服务实例或 URL 上。

  • Predicate(断言):如果请求满足断言的条件,则会应用所配置的过滤器。Spring Cloud Gateway 提供了多种内置的断言,如 Path(路径匹配)、Method(请求方法匹配)、Header(请求头匹配)等,同时也支持自定义断言。

  • Filter(过滤器):过滤器用于对请求进行处理和转换,可以修改请求、响应以及执行其他自定义逻辑。Spring Cloud Gateway 提供了多个内置的过滤器,如请求转发、请求重试、请求限流等。同时也支持自定义过滤器,可以根据需求编写自己的过滤器逻辑。

4.Spring Cloud Gateway 的过滤器有哪些?

过滤器 Filter 按照请求和响应可以分为两种:

        Pre 类型:在请求被转发到微服务之前,对请求进行拦截和修改,例如参数校验、权限校验、流量监控、日志输出以及协议转换等操作。

        Post 类型:微服务处理完请求后,返回响应给网关,网关可以再次进行处理,例如修改响应内容或响应头、日志输出、流量监控等。

另外一种分类是按照过滤器 Filter 作用的范围进行划分:

        局部过滤器,应用在单个路由或一组路由上的过滤器。

        全局过滤器,应用在所有路由上的过滤器。

5.Spring Cloud Gateway 的工作流程?

  1. 路由判断:客户端的请求到达网关后,先经过 Gateway Handler Mapping 处理,这里面会做断言判断,看下符合哪个路由规则,这个路由映射后端的某个服务。

  2. 请求过滤:然后请求到达 Gateway Web Handler,这里面有很多过滤器,组成过滤器链,这些过滤器可以对请求进行拦截和修改,比如添加请求头、参数校验等等。然后将请求转发到实际的后端服务。

  3. 服务处理:后端服务会对请求进行处理。

  4. 响应过滤:后端处理完结果后,返回给 Gateway 的过滤器再次做处理,逻辑上可以称作 Post-Filters,Post 可以理解为“在...之后”。

  5. 响应返回:响应经过过滤处理后,返回给客户端。

总结:客户端的请求先通过匹配规则找到合适的路由,就能映射到具体的服务。然后请求经过过滤器处理后转发给具体的服务,服务处理后,再次经过过滤器处理,最后返回给客户端

6. 网关与nginx区别

  • gateway的主要功能有,路由,断言,过滤器,利用它的这些特性,可以做流控。
  • nginx做网关,更多的是做总流量入口,反向代理,负载均衡等,还可以用来做web服务器。

Nginx在其中扮演的角色是什么?

  • 反向代理
  • 负载均衡

SpringGateway在其中扮演的角色是什么?

  • 统一鉴权
  • 负载均衡
  • 服务发现

7.微服务为什么要用到 API 网关?

如上图所示,API 网关作为客户端和微服务的中间层,它可以将微服务以统一的地址对外提供服务,将外部访问这个地址的流量,根据适当的规则路由到内部集群中正确的服务节点之上,如果没有 API 网关,流量的出入口则不统一,客户端就需要知道所有服务的访问信息,微服务的意义将不复存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值