springcloudgateway的作⽤(⾯试)
1. 什么是⽹关
⽹关是整个微服务API请求的⼊⼝,负责拦截所有请求,分发到服务上去。可以实现⽇志拦截、权限控制、解决跨域问题、限流、熔断、负载均衡,隐藏服务端的ip,⿊名单与⽩名单拦截、授权等,常⽤的⽹关有zuul(netflix的,但是已经停更了)和spring cloud gateway (springcloudalibaba)。这⾥主要讲springcloud gateway,springcloud gateway是⼀个全新的项⽬,其基于spring5.0 以及springboot2.0和项⽬Reactor等技术开发的⽹关,其主要的⽬的是为微服务架构提供⼀种简单有效的API路由管理⽅式.nginx和网关怎么配合使用
2.过滤器和⽹关的对⽐
过滤器:对单个服务器的请求进⾏拦截控制
⽹关:对所有的服务器的请求进⾏拦截控制
3.zuul和spring cloud gateway的对⽐
zuul:是Netflix的,是基于servlet实现的,阻塞式的api,不⽀持长连接。
gateway:是springcloud⾃⼰研制的微服务⽹关,是基于Spring5构建,能够实现响应式⾮阻塞式的Api,⽀持长连接
4.⽹关与nginx区别
相同点:都是可以实现对api接⼝的拦截,负载均衡、反向代理、请求过滤等,可以实现和⽹关⼀样的效果。
不同点:Nginx采⽤C语⾔编写,Gateway属于Java语⾔编写的, 能够更好让我们使⽤java语⾔来实现对请求的处理。
Nginx 属于服务器端负载均衡器。
Gateway 属于本地负载均衡器。
5.gateway的组成
路由 : ⽹关的基本模块,有ID,⽬标URI,⼀组断⾔和⼀组过滤器组成
断⾔:就是访问该旅游的访问规则,可以⽤来匹配来⾃http请求的任何内容,例如headers或者参数
过滤器:这个就是我们平时说的过滤器,⽤来过滤⼀些请求的,gateway有⾃⼰默认的过滤器,具体请参考官⽹,我们也可以⾃定义过滤器,但是要实现两个接⼝,ordered和globalfilter
6.gateway的流程
a. 客户端发送请求,会到达⽹关的DispatcherHandler处理,匹配到RoutePredicateHandlerMapping。
b. 根据RoutePredicateHandlerMapping匹配到具体的路由策略。
c. FilteringWebHandler获取的路由的GatewayFilter数组,创建 GatewayFilterChain 处理过滤请求
d. 执⾏我们的代理业务逻辑访问。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。