1、SpringCloud GateWay概述

SpringCloud Gateway是 Spring Cloud的一个全新项目,基于Spring 5.0+Spring Boot 2.0和Project Reactor等技术开发的网关,它旨在为微服务架构提供一种简单有效的统—的API路由管理方式;SpringCloud Gateway作为Spring Cloud生态系统中的网关,目标是替代Zuul,在Spring Cloud 2.0以上版本中,没有对新版本的Zuul 2.0以上最新高性能版本进行集成,仍然还是使用的Zul 1.x非Reactor模式的老版本。而为了提升网关的性能,SpringCcloud Gateway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通信框架Netty;Spring Cloud Gateway的目标提供统一的路由方式且基于Filter链的方式提供了网关基本的功能,例如:反向代理、鉴权、安全、日志监控、熔断、限流等。

SpringCloud GateWay官方文档地址:

https://spring.io/projects/spring-cloud-gateway#overview

2、SpringCloud GateWay特性

(1)基于Spring Framework 5、Project Reactor和Spring Boot 2.0进行构建;

(2)动态路由:能够匹配任何请求属性;

(3)可以对路由指定 Predicate (断言)和Filter (过滤器);

(4)集成Hystrix的断路器功能;

(5)集成Spring Cloud服务发现功能;

(6)易于编写的 Predicate (断言)和Filter (过滤器);请求限流功能;
支持路径重写。

3、SpringCloud GateWay三大核心概念

(1)Route(路由)

路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组成,如果断言为true则匹配该路由

(2)Predicate(断言)

参考的是Java8的java.util.function.Predicate,开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由

(3)Filter(过滤)

指的是Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改;其中Filter在“pre”类型的过滤器可以做参数校验、权限校验、流量监控、日志输出、协议转换等,在“post”类型的过滤器中可以做响应内容、响应头的修改,日志的输出,流量监控等
 

4、Spring Cloud Gateway的工作原理

工作原理图官方文档地址:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/#glossary

翻译:客户端向Spring Cloud Gateway发出请求。如果在Gateway Handler Mapping 中找到与请求相匹配的路由,则将其发送到GatewayWeb Handler。Handler再通过指定的过滤器链来将请求发送到我们实际的服务执行业务逻辑,然后返回。过滤器之间用虚线分开是因为过滤器可能会在发送代理请求之前(“pre”)或之后(“post”)执行业务逻辑。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/86319.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86319.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/86319.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TensorFlow深度学习实战:构建神经网络全指南

引言:深度学习与TensorFlow概览 深度学习作为机器学习的一个重要分支,近年来在计算机视觉、自然语言处理、语音识别等领域取得了突破性进展。TensorFlow是由Google Brain团队开发的开源深度学习框架,自2015年发布以来,已成为最受…

K8S: etcdserver: too many requests

Kubernetes etcdserver: too many requests 错误解决方案 当Kubernetes集群出现 etcdserver: too many requests 错误时,表明etcd数据库接收到的请求量超过了其处理能力。etcd作为Kubernetes的核心组件,存储着集群的所有状态数据,处理请求过…

银河麒麟高级服务器操作系统(全架构)OpenGauss 数据库部署手册

一、部署前准备工作 1. 环境检查 项目配置描述内存功能调试建议 32GB 以上。性能测试和商业部署时,单实例部署建议 128GB 以上。复杂的查询对内存的需求量比较高,在高并发场景下,可能出现内存不足。此时建议使用大内存的机器,或…

Boosting:从理论到实践——集成学习中的偏差征服者

核心定位:一种通过串行训练弱学习器、自适应调整数据权重,将多个弱模型组合成强模型的集成学习框架,专注于降低预测偏差。 本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千A…

Ubuntu下交叉编译工业相机库aravis到OpenHarmony(aarch64)使用

文章目录 下载交叉编译工具链安装meson编写交叉编译配置文件编译glib编译libiconv编译libxml2编译libusb(暂时不编译,依赖的udev库我找不到)编译Aravis使用 自行编译的库都统一放到一个地方去,这样引用时方便一些,比如…

深入理解互斥信号量(Mutex)在 FreeRTOS 中的使用与实现

在多任务操作系统中,任务间的同步和资源共享是至关重要的。为了避免多个任务同时访问共享资源,导致资源冲突和数据不一致,信号量(Semaphore) 是常用的同步机制。特别是在 FreeRTOS 中,互斥信号量&#xff0…

Liunx操作系统笔记2

Linux下的包/源管理命令:主要任务是完成在Linux环境下安装软件。 1.rpm 是最基础的rpm包的安装命令,需要提前下载相关安装包和依赖包。 2.yum/dnf是基于rpm包的自动安装命令,可以自动在仓库中匹配安装软件和依赖包。 3.光盘源 是指的 安装系统…

企业级RAG系统架构设计与实现指南(Java技术栈)

企业级RAG系统架构设计与实现指南(Java技术栈) 开篇:RAG系统的基本概念与企业应用价值 在当今快速发展的AI技术背景下,检索增强生成(Retrieval-Augmented Generation, RAG) 已成为构建智能问答、知识库管…

【Rust http编程】Rust搭建webserver的底层原理与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

4 Geotools坐标参考系与转换

在地理信息系统 (GIS) 开发中,坐标参考系统 (Coordinate Reference System, CRS) 是核心概念之一。无论是处理地图投影、坐标转换,还是在 Spring Boot 应用中管理空间数据,理解和正确使用 CRS 都至关重要。本文将围绕 GeoTools 库&#xff0c…

docker start mysql失败,解决方案

文章目录 1.查看端口占用情况2.关闭7767进程3.再次检查4.运行docker start mysql 1.查看端口占用情况 sudo netstat -tanlp | grep :33062.关闭7767进程 sudo kill -9 77673.再次检查 进程已关闭 4.运行docker start mysql 正确启动 备注:可能要关闭防火墙

SQL关键字三分钟入门:DELETE —— 删除数据

在数据库操作中,除了添加和修改记录外,我们有时还需要删除不需要的记录。例如: 清除不再使用的用户账号;删除已完成并归档的订单;移除测试时插入的数据。 这时候就需要用到 SQL 中非常基础但极其重要的关键字 —— D…

electron 全量更新

electron-builder.yml配置更新地址 # 配置自动更新的信息 publish:provider: generic # 更新服务提供者url: http://xxx.xxxx.com/pc/xxx-xx# 更新的地址服务器地址 会自动读取latest.yml 下的版本号比较 检测更新方法autoUpdater.js// src/main/autoUpdater.jsimport { app, d…

《大模型 Agent 应用实战指南》第2章:商业目标与 Agent 能力边界定义

在任何技术项目,特别是像大模型 Agent 这样具有创新性和复杂性的项目启动之初,明确清晰的商业目标是成功的基石。这不仅仅是技术团队的职责,更需要产品、运营、销售甚至高层管理者的深度参与。一个明确的目标能确保所有团队成员步调一致,资源有效分配,并最终衡量项目的成功…

提供稳定可靠的自助共享空间系统,支撑客户无人自助门店运营不错数据,历程感想

以技术产品研发系统为主,为客户提供自助共享空间系统解决方案,适用于共享棋牌室,共享麻将室,共享台球室,共享KTV,共享舞蹈室等场景,以下是其中一位客户真实门店运营数据,第一家店本月…

Golang单例实现

Go语言中,实现单例模式的方式有很多种。单例模式确保一个类只有一个实例,并提供一个全局访问点。Go语言没有类的概念,但是可以通过结构体、函数和包级变量来实现类似的功能。 懒汉实现 type Product interface {DoSomething() }type single…

JVM元空间(Metaspace)详解及其工作流程

JVM元空间(Metaspace)详解与工作流程分析 元空间概述 元空间(Metaspace)是Java虚拟机(JVM)在HotSpot VM 1.8及以后版本中引入的,用于替代永久代(PermGen)的内存区域。它主要存储类的元数据信息,包括: 类的结构信息(如方法、字段…

【JAVA】idea中打成jar包后报错错误: 找不到或无法加载主类

排查步骤 首先要排查的是,将jar文件打开,查看里面的内容是否完整是否有META-INF/MANIFEST.MF是否有MANIFEST.MF里面类路径的目录排查路径里面是否有class文件,如主类 com.example.Main 对应的 class 文件应位于 com/example/Main.class 常见…

Fisco Bcos学习 - 开发第一个区块链应用

文章目录 一、前言二、业务场景分析:简易资产管理系统三、智能合约设计与实现3.1 存储结构设计3.2 接口设计3.3 完整合约代码 四、合约编译与Java接口生成五、SDK配置与项目搭建5.1 获取Java工程项目5.2 项目目录结构5.3 引入Web3SDK5.4 证书与配置文件 六、业务开发…

软件设计模式选择、判断解析-1

前言 解析是我个人的理解,相对来说我觉得是能对上定义的逻辑的 目录 一.单选题 1.设计模式的两大主题是(  )  解析:无 2.下列模式中,属于行为型模式的是() 解析: 排除A和D,剩下的观察者的“观察”…