微服务网关GateWay-创新互联

在微服务架构下,网关的本质,其实就是对请求进行路由转发,在此基础上我们可以根据网关在整个微服务架构中的特殊位置,对请求进行前置和后置的处理。

成都创新互联公司网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,做网站、网站制作,塑造企业网络形象打造互联网企业效应。

请求转发和路由:网关类似于一个门面,微服务的组织细节对外界来说是不可知的,网关作为统一的接口提供方,将部分微服务系统的能力提供给客户端

请求过滤和控制:主要包含鉴权、限流、参数统一加密解密等

常见的开源网关方案有:Zuul、GateWay


Zuul:Netflix公司开源的一款为服务网关,主要功能是实现请求的转发和过滤控制。它定义了4种过滤器:Pre Filters、Routing Filters、Post Filters和Error Filters。

当请求进来时,先经过前置过滤器Pre Filters,所以这个过滤器常用作权限校验、参数解密和限流操作,此时如果发生错误,则会调用错误过滤器Error Filters;

当请求通过Pre Filters后,通过路由过滤器Routing Filters,将请求转发到不同的微服务进行处理,如果在执行过滤器逻辑过程中,或在调用微服务处理期间发生错误,则会调用错误过滤器Error Filters;

当请求经微服务正常处理之后,则调用后置过滤器Post Filters,后置过滤器一般会用作一些数据统计和监控,我们可以采用Prometheus的手段采集到微服务的调用时间和接口调用次数的数据,统计得到相应的热点接口予以性能优化。期间如果发生调用错误,也会调用错误过滤器Error Filters;


GateWay:是Spring官网团队研发的一款API网关。主要目的是为了取代Zuul。

Zuul存在一个问题,就是在处理一个请求的时候,Zuul内部会专门创建一个线程去进行请求的处理,并且只有当请求完成才会释放这个线程。这就导致线程在高并发场景下会被阻塞,降低系统的整体吞吐能力,影响服务的稳定运行。

看得出来Zuul初期是基于BIO模型进行设计的。后来Netflix团队也意识到这个问题,但因为迟迟未能完成版本更新,所以Spring团队决定采用非阻塞IO的模型来开发网关产品。

GateWay是依赖于SpringBoot2.x、Spring WebFlux和Reactor等技术进行开发,不仅提供了统一的路由请求方式,还基于过滤链的方式提供了网关的过滤控制功能。


GateWay的基本架构图:

一句话描述:GateWay启动时,内置的Netty Server监听指定端口。当客户端的请求到达Gateway时,它将基于Predicate的匹配结果,计算得到访问的路由Router,然后通过Router中的Filter链进行请求的处理。处理的过程和Zuul的那四类Filter的处理流程大致相同,就不再赘述。


GateWay支持多种路由匹配的Predicate:

1.基于Header的路由匹配

2.基于Host的路由匹配

3.基于请求路径的路由匹配

4.基于请求方式的路由匹配

5.基于Cookie的路由匹配

6.基于时间的路由匹配,常用于做灰度发布

如果需要更详细信息,可以移步官网进行了解


GateWay内的过滤器分为前置过滤器和后置过滤器。它内部内置了很多过滤器,分类一共有两类,即GatewayFilter和GlobalFilter。GlobalFilter的作用域是所有请求,而GatewayFilter仅会作用域单个路由或者若干个分组的路由上。

此外,如果GateWay提供的Filter不能满足需求的话,它也提供了自定义扩展的功能,通过自定义继承AbstractGatewayFilterFactory或实现GlobalFilter即可完成扩展。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


名称栏目:微服务网关GateWay-创新互联
文章位置:http://pwwzsj.com/article/iegeo.html