开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情
简介
SpringCloud-Gateway 是 SpringCloud 的二级子项目,它提供了微服务的网关功能,其中包含了一些权限安全、监控、指标等功能。
一些关键性名词
Route
Route 它翻译过来就是路由的意思,Gateway 中它占据着很重要的地位也是主要的学习内容,并且一个 Gateway 项目是可以包含于多个 Route(路由),我们在配置文件中配置的信息其实就是 Route,并且Route里面又有以下属性:
1、ID
2、URL
3、Predicate集合
4、Filter集合
以上这四大属性都是 Route 中的,其中 id 它是随便起的一个名词它是可以自定义的,url 它表示着其中代理的请求,这个代理的请求是当我们访问 Gateway 时代理的请求,简单点理解就是我们前端请求的路由,并不是我们后端真正的url,比如我们访问一个url为:127.0.0.1:8080/demo 这个地址时,这个代理的的url其实就是 /demo,通过网关后我们访问对应的服务和接口就是 Predicate 和 Filter 决定的。
Predicate集合
中文翻译过来是谓词的意思,它也是在学习 Gateway 时比较重要的一点,简单点理解它就是一些附加条件和一些附加的内容。比如:我们请求 Gateway 的时候在url中传参,具体的请求可能是 127.0.0.1:8080/demo/123 后面的 123 是其中一个参数,如果没有 Predicate 那么就会直接转发到下面的服务从而引起下面的服务直接报500的错误,如果添加了那么在网关的时候就会拦截掉。
Filter集合
Filter 就是过滤器,所有生效的 Filter 都是 Gateway 的实例,在 Gateway 运行过程中 Filter 负责在代理服务 “之前” 或者 “之后” 去做一些事情。
下面是一个 Gateway 的简化处理流程