SpringCloudGateway之高性能篇

SpringCloudGateway之高性能篇

背景

在公司的开放平台中,为了统一管理对外提供的接口、处理公共逻辑、实现安全防护及流量控制,确实需要一个API网关作为中间层。
在这里插入图片描述

场景

统一接入点:
API网关作为所有对外服务的单一入口,简化客户端对内部系统的访问,同时方便整体管理和运维。

公共逻辑处理:
在Spring Cloud Gateway中,可以通过自定义过滤器(GatewayFilter)的方式集中处理公共逻辑,例如全局异常处理、日志记录、跨域支持等。

权限验证:
可以在过滤器中实现JWT token验证或者其他认证方式,验证请求的合法性。例如,可以通过pre类型的过滤器对请求头中的Authorization信息进行验证。

限流控制:
使用Spring Cloud Gateway内置的RequestRateLimiter过滤器或者集成第三方限流组件(如Sentinel或Redis RateLimiter),限制来自单个IP地址、用户或服务的请求速率,防止因过载导致系统崩溃。

路由转发:
根据请求路径或其他条件,通过定义路由规则(RoutePredicateFactory)将请求转发至对应的服务实例,同时也可在路由层面实现灰度发布、A/B测试等功能。

熔断与降级:
集成熔断组件如Hystrix或Resilience4j,当后端服务不可用或响应过慢时,及时触发熔断机制,返回预设的错误提示或默认数据,避免连锁反应导致整个系统崩溃。

SpringCloudGateway示例

spring:cloud:gateway:routes:- id: my_public_apiuri: lb://backend-servicepredicates:- Path=/api/public/**filters:- name: TokenAuthenticationFilter # 自定义的Token验证过滤器- name: RequestRateLimiter # 限流过滤器args:key-resolver: "#{@remoteAddrKeyResolver}"rate-limiter: "#{@customRateLimiter}"- name: Hystrix # 熔断过滤器args:name: fallbackcmdfallbackUri: forward:/fallback

SpringCloudGateway与zuul区别

维度SpringCloudGatewayzuul
社区生态社区热度高社区热度较低、中文文档多
易用性spring cloud 组件集成;基于springboot2.0;需要项目升级至springboot2.Xspring cloud netflix组件集成zuul1.x版本,1.x版本基于阻塞io;2.X版本就netty,异步非阻塞io,支持长连接,但springcloud暂时未集成。zuu1.x版本基于springboot1.x
性能nacos+spring cloud gateway+service;个人本地压测;100并发:3ms;500并发:3ms;5000并发:320ms。相关资料:并发较低的情况下两者一样,并发较高springcloudgateway是zuul1.x的1.6倍eureka+zuul+service。个人本地压测:100并发:3ms;500并发:5ms;5000并发:267ms
维护状态springcloud组件,持续更新,版本从2.0.0开始springcloud组件仅支持到1.X,zuulcore持续维护2.1.4至今
重点功能,特点过滤器有global filter和gatewayfilter,分为全局和局部;基于netty转发。过滤器仅为全局过滤器;基于servlet同步阻塞转懾穵咗榼瘛澔者瓯。

网关整体设计及常用架构

在这里插入图片描述

在这里插入图片描述

优化思路

1、去掉不必要的日志打印
2、调整中间件的关键参数和回收机制
3、框架核心代码重写
4、路由分级切割
5、多级网关路由设计
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

《区块链技术:解锁数字时代的无限可能》

区块链技术作为近年来备受瞩目的创新技术,正以崭新的姿态改变着我们的世界。从技术进展到行业应用,再到面临的挑战与机遇,以及未来的发展趋势,本文将全面剖析区块链技术的发展现状和潜力。 区块链技术原理 区块链技术原理是指构成…

智慧公厕的系统构成与功能解析

智慧公厕系统是通过传感器和云平台相结合的创新技术,旨在提供更好的公厕管理与服务。智慧公厕从系统的构成来看,主要分为感知层(数据收集)、传输层(数据传输)、平台层(数据处理)和应…

Ubuntu学习笔记之Shell与APT下载工具

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ 一、Ubuntu Shell操作 简单的说Shell 就是敲命令。国内把 Linux 下通过命令行输入命令叫…

4、类加载器

2.4.1 什么是类加载器 类加载器&#xff08;ClassLoader&#xff09;是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术&#xff0c;类加载器只参与加载过程中的字节码获取并加载到内存这一部分。 类加载器会通过二进制流的方式获取到字节码文件的内容&#xff0c…

【算法】数组-移除元素

给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并原地修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的…

CentOS、windows与Server_u服务器之间加密传输

一、适用场景&#xff1a; 1、保护数据传输&#xff1a;使用FTPS&#xff08;FTP over SSL/TLS&#xff09;可以加密FTP会话中的所有数据&#xff0c;从而防止数据在网络中被监听或篡改。 2、符合安全标准&#xff1a;许多行业标准要求数据传输必须是加密的。 3、保护用户凭证…

阿里云云服务器ECS端口多个端口号开通教程

阿里云云服务器ECS端口多个端口号开通教程 1、登录到ECS云服务器管理控制台 2、左侧栏找到【实例与镜像】>>【实例】&#xff0c;找到目标ECS实例&#xff0c;点击实例ID进入到实例详情页 3、切换到【安全组】页面&#xff0c;点击右侧【配置规则】&#xff0c;如下图&…

电力变电站自动化控制钡铼R40工业路由器4G全网通

随着电力行业的快速发展和电力系统的规模不断扩大&#xff0c;电力变电站自动化控制系统的建设和运行管理变得尤为重要。在这种背景下&#xff0c;钡铼R40工业路由器作为一款高性能、稳定可靠的通信设备&#xff0c;通过4G全网通技术&#xff0c;可以有效解决电力变电站自动化控…

WebXR实践——利用aframe框架浏览器展示全景图片

一、效果 话不多说&#xff0c;先上效果 二、代码 index.html <!DOCTYPE html> <html><head><meta charset"utf-8"><title>360&deg; Image</title><meta name"description" content"360&deg; Imag…

第十二届蓝桥杯省赛CC++ 研究生组-路径

记录到每个结点的最短距离&#xff0c;以此为基础计算后续结点最优值 #include<iostream> #include<algorithm> using namespace std; typedef long long ll;ll gcd(int a, int b){if(!b) return a;return gcd(b, a % b); }int main(){ll dp[2022] {0};//dp[i]记…

uinapp开发-PHP语言-后端安装说明-适用于圈子-陪玩-交友-校园-团购-外卖-分销等多系统-APP小程序H5多端皆有!

后端安装说明 全新安装客户&#xff0c;按此安装调试步骤&#xff0c;请按顺序&#xff1a; ** 后台安装步骤及说明 ** 1、在服务器里安装宝塔。下载www.bt.cn。 宝塔安装完毕后&#xff0c;安装环境&#xff0c;Nginx或者Apache 请选择PHP7.3 数据库mysql5.6。 NGINX 1.22.1轻…

超越 GPT-4V 和 Gemini Pro!HyperGAI 发布最新多模态大模型 HPT,已开源

随着AI从有限数据迈向真实世界&#xff0c;极速增长的数据规模不仅赋予了模型令人惊喜的能力&#xff0c;也给多模态模型提供了更多的可能性。OpenAI在发布GPT-4V时就已经明确表示&#xff1a; 将额外模态&#xff08;如图像输入&#xff09;融入大语言模型&#xff08;LLMs&am…