欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

SpringCloudGateWay学习--入门

时间:2023-06-17
文章目录

一、前言

1、版本信息2、学习参考资料 二、Spring Cloud Gateway

1、思考为什么要使用网关2、Spring Cloud Gateway概述

2.1 简述2.2 架构图2.3 核心术语 一、前言 1、版本信息

Spring Cloud Gateway–3.1.0 2、学习参考资料

官方文档:

https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/

二、Spring Cloud Gateway 1、思考为什么要使用网关 可在网关实现一些统一的逻辑,不用每个服务都实现一套。(如权限校验)使用网关后,对外暴露的永远是一个域名,不管内部的微服务怎么重新拆分,域名都不会变便于Api的统一管理。如限流、监控等 2、Spring Cloud Gateway概述 2.1 简述

Spring Cloud Gateway 是Spring Cloud生态的第二代网关。(Zuul是第一代)Spring Cloud Gateway 建立在Spring Boot 2.x、Spring WebFlux和Project Reactor之上Spring Cloud Gateway 需要 Spring Boot 和 Spring Webflux 提供的 Netty 环境Spring Cloud Gateway 不适用于传统的 Servlet 容器(如Tomcat),不能构建成WAR包,只能Jar包Spring Cloud Gateway 不支持Sring Boot 1.x

备注:

Netty:网络通信框架,实现高性能的服务端和客户端

官网:https://netty.io/ Reactor:Reactive编程模型的实现

官网:https://projectreactor.io/5 分钟理解什么是响应式编程 Reactive Programming WebFlux:Reactive的web框架

Spring WebFlux:https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html

2.2 架构图

官网描述:

客户端向 Spring Cloud Gateway 发出请求。如果网关处理程序映射确定请求与路由匹配,则将其发送到网关 Web 处理程序。此处理程序通过特定于请求的过滤器链运行请求。过滤器用虚线划分的原因是过滤器可以在发送代理请求之前和之后运行逻辑。执行所有“预”过滤器逻辑。然后发出代理请求。发出代理请求后,将运行“发布(后置)”过滤器逻辑。

源码

Gateway Handler Mapping :
org.springframework.cloud.gateway.handler.RoutePredicateHandlerMapping

Gateway Web Handler :
org.springframework.cloud.gateway.handler.FilteringWebHandler

2.3 核心术语

Route(路由)

Spring Cloud Gateway的基础元素,可简单理解成一条转发的规则。包含:ID、目标URL、Predicate集合以及Filter集合。

Predicate(谓词)

java.util.function.Predicate (Java8谓词函数), Spring Cloud Gateway使用Predicate实现路由的匹配条件(如请求头和参数)。

Filter(过滤器)

通过过滤器,在发送下游请求之前或之后修改请求和响应。

备注:

Java8谓词函数:https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。