基本概念
路由(Route)是gateway中最基本的组件之一,表示一个具体的路由信息载体,主要定义下面几个信息: id 路由的标识符,唯一标识,区别路由 uri 路由指向的目的地的uri,即客户端请求最终被转发到的微服务 order 用于多个路由之间的排序,数值越小越靠前,匹配的优先级越高。 predicate 断言的作用是进行条件判断,只有断言都返回true,才会真正的执行路由 filter 过滤器,用于修改请求和响应的信息。
执行流程
- 客户端向网关发送请求,请求可以是http\https等等
- 请求首先会被HttpWebHandlerAdapter进行提取,组装网关上下文。
- 然后网关的上下文会传递到DispatchHandler,由他负责将请求分发给 RouterPredicateHandlerMapping。
- RouterPredicateHandlerMapping负责查找路由,并且根据断言判断是否可用。
- 如果断言成功,有FilterWebHandler创建过滤器链并调用。
- 请求会经过前置过滤器到达微服务,再经过后置过滤器后,返回响应。