文章目录
- 创建网关
- 配置路由规则
- 工作原理
- 断言
- 过滤器
- 默认filter
- 全局跨域
左边的是响应式网关,右边是传统网关(Servlet年代)
推荐左边的
需求
创建网关
在服务模块外
新建一个gateway模块
导入依赖,nacos和gateway和负载均衡

配置一下
这里网关默认占8080端口,我们改称80端口,你输入url时候
如果只写localhsot没写端口默认走80
所以以后写url只写localhost/api/order和localhost:80/api/order效果一样

网关本身算一个服务在nacos中所以要开启服务发现注解

接下来启动项目它就是一个网关了

配置路由规则
两种方式,一种配置文件方式,一种编码方式

配置方式

在我们的服务模块也要加上断言的前缀(因为gateway根据前缀转发对应服务对应http请求不变还是api/order开头,你如果不加的话,服务就会找不到对应请求的url )


工作原理
id唯一标识
满足断言规则才会到uri指定目的地

断言
断言匹配顺序默认从上到下依次匹配
如果有order,则order越小越先匹配,比如这里你输api/order/**就会到我们的service-order
但是如果没有order的话,会到我们的https://cn.bing.com/

这里建议找一下官方文档看一下
断言可以限制的有很多,比如限制参数,Cookie,路径等等
分为长短写法



还有一个自定义断言工厂
过滤器

路径重写过滤器常用

后面用的是正则表达式
可使用ai辅助

下面这个过滤器会给所以请求添加请求头
X-Response-Abc = 123


默认filter
这默认filiter就会在每一个路由规则都会应用

GlobalFilter和自定义过滤器工厂自己学一下
全局跨域
前后端端口不一样跨域
在网关设置跨域解决
一般都是配置这个允许全局跨域

