Gateway 概念及执行流程|学习笔记

简介: 快速学习 Gateway 概念及执行流程

开发者学堂课程【全面讲解 Spring Cloud Alibaba 技术栈(知识精讲+项目实战)第三阶段Gateway 概念及执行流程】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/685/detail/11889


Gateway 概念及执行流程

内容介绍:

一、基本概念

二、执行流程


由客户端发送一个请求到达 SpringCloudGateway,然后 Gateway 按照一定的规则进行请求转发,将其转发到商品微服务里,调用之后将结果返回客户端。

这节内容是入门案例里提到的一些概念以及在下图请求链中 API 网关内部是如何工作、相关执行流程讲解。

image.png所谓的 API 网关,就是指系统的统一入口,它封装了应用程序的内部结构,为客户端提供统一服务,一些与业务本身功能无关的公共逻辑可以在这里实现,诸如认证、鉴权、监控、路由转发等等。


一、基本概念

路由(Route)是 gateway 中最基本的组件之一,表示一个具体的路由信息载体。

主要定义了下面的几个信息:

id,路由标识符,区别于其他 Route。

uri,路由指向的目的地 uri,即客户端请求最终被转发到的微服务。

order,用于多个 Route 之间的排序,数值越小排序越靠前,匹配优先级越高。

predicate,断言的作用是进行条件判断,只有断言都返回真,才会真正的执行路由。

filter,过滤器用于修改请求和响应信息。

@NotEmpty

private String id = UUID. randomUUID() . tostring();

@NotEmpty

@Vaildprivate List<PredicateDefinition> predicates = new ArrayList();

@Vaild

private List<FilterDefinition> filters = new ArrayList();

@NotNull

private URI uri;

private int order = 0;

上面的代码是对以上五个信息的解释

路由就是指当请求满足什么样的条件的时候转发到某个微服务上,在转发过程中还可以动一下手脚。


二、执行流程

执行流程大体如下:

image.png

image.png

1Gateway Client向Gateway Server 发送请求

2.请求首先会被 HttpWebHandlerAdapter 进行提取组装成网关上下文

3.然后网关的上下文会传递到 DispatcherHandler,它负责将请求分发给 RoutePredicateHandlerMapping

4.RoutePredicateHandlerMapping 负责路由查找,并根据路由断言判断路由是否可用

5.如果过断言成功,由 FilteringWebHandler 创建过滤器链并调用

6.请求会一次经过 PreFilter–微服务–PostFilter 的方法,最终返回响应

HttpWebHandlerAdpter 是对请求信息进行分析,组装网关上下文,并将上下文向下传递

DispatcherHandler 是负责请求分发

RouterPredicateHandlerMapping 是路由断言处理映射器,它的作用是匹配路由信息,通过路由断言,判断路由是否可用,断言失败,返回;断言成功,往下进行

虚线左侧相当于到达服务器之前的流程,虚线右侧是到达服务器之后的流程,请求一旦到达过滤器中,就可以在过滤器中处理许多事情,处理完成会到达微服务(Proxied Service)

要记住以下几个步骤:首先经过请求传递到达网关,后是断言的判断,经过过滤器到达微服务,之后在经过过滤器返回

相关文章
|
数据库 网络架构 iOS开发
SAP Gateway 里的 REST 概念
SAP Gateway 里的 REST 概念
|
6月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
257 0
|
运维 监控 Java
【运维知识进阶篇】Zabbix5.0稳定版详解8(Zabbix监控Java项目+详解JMX与Zabbix-Java-Gateway原理+详解监控Java项目流程原理)
【运维知识进阶篇】Zabbix5.0稳定版详解8(Zabbix监控Java项目+详解JMX与Zabbix-Java-Gateway原理+详解监控Java项目流程原理)
428 0
|
监控 安全 Java
【SpringCloud技术专题】「Gateway网关系列」微服务网关服务的Gateway全流程开发实践指南(2.2.X)
【SpringCloud技术专题】「Gateway网关系列」微服务网关服务的Gateway全流程开发实践指南(2.2.X)
432 0
【SpringCloud技术专题】「Gateway网关系列」微服务网关服务的Gateway全流程开发实践指南(2.2.X)
|
数据采集 监控 Java
熔断限流与关网 Gateway|学习笔记(三)
快速学习熔断限流与关网 Gateway
熔断限流与关网 Gateway|学习笔记(三)
|
前端开发 Java 中间件
MyCat - 环境搭建 - 微服务网关 gateway 搭建 | 学习笔记
快速学习 MyCat - 环境搭建 - 微服务网关 gateway 搭建
250 0
MyCat - 环境搭建 - 微服务网关 gateway 搭建 | 学习笔记
|
Java 开发者 Spring
Gateway 内置路由断言|学习笔记
快速学习 Gateway 内置路由断言
124 0
Gateway 内置路由断言|学习笔记
|
Java 开发者 微服务
Gateway 过滤器简介|学习笔记
快速学习 Gateway 过滤器简介
113 0
Gateway 过滤器简介|学习笔记
|
Java 数据安全/隐私保护 开发者
Gateway 全局过滤器|学习笔记
快速学习 Gateway 全局过滤器
155 0
Gateway 全局过滤器|学习笔记
|
负载均衡 安全 Java
实现 Gateway | 学习笔记
快速学习实现 Gateway。
实现 Gateway | 学习笔记