从系统架构理解Spring Cloud Gateway的作用

1.nginx和Gateway的区别?

首先,我们要了解网关这个概念。对应nginx和Gateway这两者来说,他们都是网关,但他们的使用场景却不同,也就是说,他们的作用是不同的。

Gateway 作为更底层的微服务网关,通常是作为外部 Nginx 网关和内部微服务系统之间的桥梁,起了这么一个承上启下的作用。

 首先,用户通过浏览器访问域名,域名通过DNS服务器进行解析,解析到对应的ip,一般一些大公司,为了避免单点故障,我们可以在这层加层保险。具体的实现,有几种方式。

第一种:将域名映射成两个IP地址做主备。

第二种:根据用户IP所属区域做Loadbalancer(负载均衡),将请求导向就近的IP地址。

2.虚IP

上面我们说到,为了避免单点故障,在域名解析到IP这一步,实际上我们使用的是一个虚ip,它后面有可能是映射到一个网关集群上。

在阿里云上,提供了一个产品叫:全局流量管理的产品,有点类似这个。

 3.为什么请求到达微服务最一步是微服务网关

Gateway既然叫“微服务网关”,就说明它也是一个微服务。简单来说,它也是Nacos服务注册中的一员。因此它能获取到Nacos中所有的服务注册表。这样一来,Gateway就可以根据本地的路由规则,将请求精准无误地送到每个微服务组件中。

3.1.Gateway的好处

1.高扩展性

2.高度可定制化

4.Gateway路由规则

组成部分路由谓语过滤器

4.1.路由

路由是 Gateway 的一个基本单元 ,每个路由都有一个目标地址,这个目标地址就是当前
路由规则要调用的目标服务。

4.2.谓语

所谓谓词,实际上是路由的判断规则 ,一个路由中可以添加多个谓词的组合。
打个比方,你可以为某个路由设置一条谓词规则,约定访问路径的匹配规则为 Path=/bingo/*,在这种情况下只有以 /bingo 打头的请求才会被当前路由选中。
谓词和路由是怎么配合工作?
其实 Gateway 里通常会配置多个路由单元。因为在真实项目里,每个微服务都有不同的路由规则,但每个请求只能被一个路由规则选中。
如果某个请求同时匹配上了多个路由,该选择哪个路由呢?
Gateway 提供了一种“优先级”设置,你可以通过设置路由的优先级参数来调整生效的先后顺序。        

4.3.过滤器

过滤器和路由、目标地址之间是什么关系呢?

Gateway 在把请求转发给目标地址的过程中,把这个任务全权委托给了 Filter(过滤器)来处理。

Gateway 组件使用了一种 FilterChain 的模式 对请求进行处理,每一个服务请求 (Request)在发送到目标服务之前都要被一串 FilterChain 处理。同理,在 Gateway 接收服务响应(Response)的过程中也会被 FilterChain 处理一把。
Gateway 的过滤器主要分为两种,一种是 GlobalFilter,也就是“ 全局过滤器 ”;另一种是GatewayFilter,也就是对指定路由生效的“ 局部过滤器 ”。

​看到最后,画重点了,如果您需要(智慧餐厅)有关设备,或者身边有这样的资源,可以推荐给我,达成合作后,你懂的,致富链接:

未来餐饮革命:加入我们的“智能餐厅”代理、自主开拓市场计划!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿小飞

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值