GateWay工作流程
核心流程图如下:
核心概念
客户端向 SpringCloud GateWay 发出请求,如果 GateWay Handler Mapping 确定请求与路由匹配,则将其发送到 GateWay Web Handler 处理程序,此处理请求通过特定的 Filter 链运行请求,执行所有pre过滤的逻辑,然后进行代理请求,然后运行post过滤器逻辑。
过滤器的作用
- Filter在pre类型的过滤器可以做参数校验、权限校验、流量监控、日志输出、协议转换等;
- Filter在post类型的过滤器可以做响应处理,日志输出、流量监控等;
三个核心
- Route(路由)
路由是构建网关的基础模块,它由ID、URI以及一系列的断言和过滤器组成,如果断言为真,则匹配路由。 - Predicate(断言)
可以匹配Http请求中所有内容(请求头、请求参数等),请求与断言匹配则进行路由。 - Filter(过滤)
是指Spring框架中GateWayFilter的实例,使用过滤器,使用过滤器,在路由前或者路由后对请求进行修改。
三个核心连起来就是:当用户发出请求到达GateWay,GateWay会通过一些匹配条件,定位到真正的服务节点,并在这个转发过程前后,进行一些细化的控制。其中断言就是我们匹配的条件,而Filter可以理解为一个拦截器,再加上URI就可以实现一个具体的路由了。
总结
GateWay的核心流程就是:路由转发 + 执行过滤器链。