在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
Spring Cloud Gateway工作原理是什么?作为 Spring Cloud 生态系网关替代 Netflix Zuul,提供统一的路由方式,基Filter 链的提供网关基本的功能。
Spring Cloud Gateway是Spring 官方基于Spring 5.0、Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单有效的、统一的 API 路由管理方式。
Spring Cloud Gateway 作为 Spring Cloud 生态系中的网关,其目标是替代 Netflix Zuul,它不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,如:安全、监控/埋点和限流等。
Spring Cloud Gateway依赖Spring Boot和Spring WebFlux,基于Netty 运行。不能在传统的 servlet 容器中工作也不能构建成war包。
一、关于Spring Cloud Gateway 核心概念
1、Route
Route 是网关的基础元素,由 ID、目标 URI、断言、过滤器组成。当请求到达网关时,由 Gateway HandlerMapping 通过断言进行路由匹配(Mapping),断言为真时匹配到路由。
2、Predicate
Predicate 是 Java 8 中提供的一个函数。输入类型是 Spring Framework ServerWebExchange。它允许开发人员匹配来自 HTTP 的请求,例如请求头或者请求参数。简单来说它就是匹配条件。
3、Filter
Filter是Gateway 中的过滤器,可以在请求发出前后进行一些业务上的处理。
二、Spring Cloud Gateway 工作原理
Spring Cloud Gateway工作原理跟 Zuul相差不多,最大区别是 Gateway的 Filter 只有 pre 和 post 两种。Gateway 的工作原理图 :
客户端向 Spring Cloud Gateway 发出请求,如果请求与网关程序定义的路由匹配,则该请求就会被发送到网关 Web 处理程序,此时处理程序运行特定的请求过滤器链。过滤器之间用虚线分开的原因是过滤器可能会在发送代理请求的前后执行逻辑。所有 pre 过滤器逻辑先执行,然后执行代理请求;代理请求完成后,执行 post 过滤器逻辑。
总结Spring cloud gateway 的工作机制:Gateway 接收客户端请求。客户端请求与路由信息进行匹配,匹配成功的才能够被发往相应的下游服务。请求经过 Filter 过滤器链,执行 pre 处理逻辑,如修改请求头信息等。请求被转发至下游服务并返回响应。响应经过 Filter 过滤器链,执行 post 处理逻辑。向客户端响应应答。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
零基础自学Java需要从什么地方开始?
零基础自学Java需要从什么地方开始?事实上,对于完全零基础的学习者来说,自学Java是不太现实的,毕竟编程语言的自学还是很大的难度。如果大家实在不想去线下的培训班,最好还是报一个在线教育的课程进行自学。只有具备了合适的学习方案和老师的指导,才能少走很多弯路,更加高效的学习。
4677
2019-10-11 18:28:50
自学Java可以找到工作吗?要学到什么程度?
Java作为备受程序员喜爱的编程语言,在各行各业都被广泛使用,导致当下越来越来多的自学者想通过自己的努力,自学Java从而找到一份高薪可以改变自己职业前途的工作。那么自学Java可以找到工作吗?要学到什么程度?其实对大多数学习者来说,自学Java都不是一个最好的选择,一方面是因为Java语言自身学习的难度比较高,另一方面是自学效率低,对自学者能力要求高。
5963
2019-10-26 11:33:24
2020年九大Java开发框架都有什么?
2020年九大Java开发框架,小编主要介绍Spring框架、Hibernate框架、Struts框架、Play框架、GoogleWebToolkit框架、Grails框架、Blade框架、JavaServerFaces框架、Vaadin框架九大框架,希望您可以多Java框架有更多的认识。
5182
2019-12-18 16:34:54
Vue入门案例详解
Vue作为Java开发者必须掌握的主流框架之一,以其轻巧、高性能等优势而备受青睐和追捧。本文将通过一个案例的详解,帮助大家顺利入门Vue,主要内容包括HTML模板、Vue渲染、双向绑定和事件处理。下面一起来学习吧~
4386
2020-04-28 18:12:02
Java学哪些内容可以找到工作?
想要找到Java相关的工作,必须具备Java岗位要求的相关技能,应该有夯实的Java基础知识,熟练掌握、JavaSE开发、JavaWEB与数据库高级编程、企业级框架、大型企业级项目实战等相关的开发技能。
3478
2020-12-30 14:05:37