微服务网关之Spring Cloud Gateway

API网关的作用:

  网关在客户端和服务端之间加了一个API网关。整体来看,网关有点类似于门面,所有的外部请求都会经过网关这一层。

  对于商品详情展示的场景来看,增加了API网关之后,在API网关层可以把后端的多个服务进行整合,然后提供唯一的业务接口,

客户端只需要调用这个接口即可完成数据的获取及展示。在网关中在消费后端的多个微服务,进行统一的整合,给客户端返回唯一的响应。

  网关不仅只是做一个请求的转发及服务的整合,有了网关这个统一的入口之后,它还能提供以下功能。

  • 针对所有请求进行统一鉴权、限流、熔断、日志。
  • 协议转化。针对后端多种不同的协议,在网关层统一处理后以HTTP对外提供服务.
  • 统一错误码处理
  • 请求转发,并且可以基于网关实现内、外网隔离。

下面针对上述网关作用的分析,选择几种常用的方案进行详细的说明。

 

Spring Cloud Gateway 原理分析

  Spring Cloud Gateway 的请求处理,其中有几个非常重要的概念。

  • 路由(Route):它是网关的基本组件,由ID、目标URI、Predicate集合、Filter集合组成。
  • 谓词(Predicate):它是Java8 中引入的函数式接口,提供了断言的功能。它可以匹配HTTP请求中的任何内容。如果Predicate的聚合判断结果为true,则意味着该请求会被当前Router进行转发。
  • 过滤器(Filter):为请求提供前置和后置的过滤。

 

 

 

   Spring Cloud Gateway 启动时基于 Netty Server 监听一个指定的端口(该端口可以通过server.port 属性自定义)。当客户端发送一个请求到网关时,网关会根据一系列Predicate 的匹配结果来决定访问哪个Route路由,然后根据过滤器链进行请求的处理。过滤器链可以在请求发送到后端服务器之前和之后执行,也就是首先执行pre过滤器链,然后将请求到后端服务器,最后执行Post过滤器链。

 

posted @ 2021-07-13 15:28  天竹冰程  阅读(221)  评论(0编辑  收藏  举报