Spring Cloud Alibaba入门实践(二十四)-了解下Gateway核心架构
上篇博客引入了Gateway并做了测试,可以发现,路由是Gateway最基础的东西。它主要定义了以下几种信息:
-
id:路由标识符,区别于其他Route。
-
uri:路由指向的目的地uri,即客户端请求最终被转发到的微服务。
-
order:用于多个Route之间的排序,数值越小排序越靠前,匹配优先级越高。
-
predicate:断言的作用是进行条件判断,只有断言都返回真,才会真正的执行路由。
-
filter:过滤器用于修改请求和响应信息。
执行流程图如下:
执行流程说明:
-
Gateway Client向Gateway Server发送请求
-
请求首先会被HttpWebHandlerAdapter进行提取组装成网关上下文
-
然后网关的上下文会传递到DispatcherHandler,它负责将请求分发给
RoutePredicateHandlerMapping -
RoutePredicateHandlerMapping负责路由查找,并根据路由断言判断路由是否可用
-
如果断言成功,由FilteringWebHandler创建过滤器链并调用
-
请求会一次经过PreFilter–微服务–PostFilter的方法,最终返回响应
通过以上的流程分析,其实可以发现,spring cloud gateway的核心就是路由转发+过滤链调用。