栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Cloud GateWay学习(1)--入门

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Cloud GateWay学习(1)--入门

文章目录

一、前言

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/735747.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号