如何解析构建Spring Cloud Gateway网关实战及原理


今天就跟大家聊聊有关如何解析构建Spring Cloud Gateway网关实战及原理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。API 网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题:客户端会多次请求不同的微服务,增加了客户端的复杂性。存在跨域请求,在一定场景下处理相对复杂。认证复杂,每个服务都需要独立认证。难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如果客户端直接与微服务通信,那么重构将会很难实施。某些微服务可能使用了防火墙 / 浏览器不友好的协议,直接访问会有一定的困难。以上这些问题可以借助 API 网关解决。API 网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过 API 网关这一层。也就是说,API 的实现方面更多的考虑业务逻辑,而安全、性能、监控可以交由 API 网关来做,这样既提高业务灵活性又不缺安全性,典型的架构图如图所示:使用 API 网关后的优点如下:易于监控。可以在网关收集监控数据并将其推送到外部系统进行分析。易于认证。可以在网关上进行认证,然后再将请求转发到后端的微服务,而无须在每个微服务中进行认证。减少了客户端与各个微服务之间的交互次数。业界的情况:此时生产了一个spring-cloud-gateway-example的空项目包,pom.xml文件如下
2.创建一个Route实例的配置类GatewayRoutes

当然,也可以不适用配置类,使用配置文件,如下图所示

不过,为了调试方便,我们使用配置类方式。此时项目已经完成,足够简单吧。3.启动此项目 >>因api网关需要转发到一个服务上,本文为http://localhost:8090/helloWorld,那需要先启动我上文,你也可以创建一个普通的web项目,启动端口设置为8090,然后启动。

>>以spring boot方式启动spring-cloud-gateway-example项目,日志如下

4.测试,浏览器访问http://localhost:8080/java/helloWorld返回hello world !5.从上面的代码和配置及实例中,我们可以看出spring cloud gateway处理request请求的流程如下所示:即在最前端,启动一个netty server(默认端口为8080)接受请求,然后通过Routes(每个Route由Predicate(等同于HandlerMapping)和Filter(等同于HandlerAdapter))处理后通过Netty Client发给响应的微服务。那么在gateway本身最重要的应该是Route(Netty Server和Client已经封装好了),它由RouteLocatorBuilder构建,内部包含Predicate和Filter,

那么我们就 香港云主机来探讨一下这两个组件吧5.1.PredicatePredicte由PredicateSpec来构建,主要实现有:以path为例PathRoutePredicateFactory中执行5.2.FilterFilter分两种,一种GatewayFilter,一种GlobalFilter5.2.1 GatewayFilterGatewayFilter由GatewayFilterSpec构建,GatewayFilter的构建器5.3 GlobalFilter和GatewayFilter的联系FilteringWebHandler.GatewayFilterAdapter代理了GlobalFilter6.总结 本文从一个spring-cloud-gateway实例入手,深入浅出的介绍了spring-cloud-gateway的组件,并从源码角度给出了实现的原理。 spring-cloud-gateway在最前端,启动一个netty server(默认端口为8080)接受请求,然后通过Routes(每个Route由Predicate(等同于HandlerMapping)和Filter(等同于HandlerAdapter))处理后通过Netty Client发给响应的微服务。Predicate和Filter的各个实现定义了spring-cloud-gateway拥有的功能。看完上述内容,你们对如何解析构建Spring Cloud Gateway网关实战及原理有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注开发云行业资讯频道,感谢大家的支持。

相关推荐: 大数据中Spark Streaming的架构及原理是什么

本篇文章给大家分享的是有关大数据中Spark Streaming的架构及原理是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。数据的时效性日常工作中,我们一般会先把数据储存在一张表中,然后对这张…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/12 17:55
下一篇 08/12 17:55

相关推荐