路由功能详解
这一节我们看一看Gateway中的路由是怎么工作的;GateWay网关的路由功能可不是简简单单的 “转发" 请求,在请求到达网关要流转到指定服务之间发生了很多事儿,它不光可以拒绝请求,甚至可以"篡改” 请求的参数,我们接下来就去看看路由这里面的门道。
1、路由三重门
Gateway中可以定义很多个Route,一个Route就是一套包含完整转发规则的路由,主要由三部分组成:
- 断言集合: 断言是路由处理的第一个环节,它是路由的匹配规则,它决定了一个网络请求是否可以匹配给当前路由来处理。之所以它是一个集合的原因是我们可以给一个路由添加多个断言,当每个断言都匹配成功以后才算过了路由的第一关。
- 过滤器集合: 如果请求通过了前面的断言匹配,那就表示它被当前路由正式接手了,接下来这个请求就要经过一系列的过滤器集合。过滤器的功能就是八仙过海各显神通了,可以对当前请求做一系列的操作,比如说权限验证,或者将其他非业务性校验的规则提到网关过滤器这一层。在过滤器这一层依然可以通过修改Response里的Status Code达到中断效果,比如对鉴权失败的访问请求设置Status Code为403之后中断操作;
- URI: 如果请求顺利通过过滤器的处理,接下来就到了最后一步,那就是转发请求。URL是统一资源标识符,它可以是一个具体的网址