Spring Cloud Gateway 整合 sentinel 实现流控熔断

2023-11-03

一、什么是网关限流:

在微服务架构中,网关层可以屏蔽外部服务直接对内部服务进行调用,对内部服务起到隔离保护的作用,网关限流,顾名思义,就是通过网关层对服务进行限流,从而达到保护后端服务的作用。

Sentinel 从 1.6.0 版本开始就提供了 Spring Cloud Gateway 的适配,可以提供两种资源维度的限流:

  • route维度:即在配置文件中配置的路由条目,资源名为对应的 routeId,这种属于粗粒度的限流,一般是对某个微服务进行限流。
  • 自定义API维度:用户可以利用 Sentinel 提供的API来自定义一些API分组,这种属于细粒度的限流,针对某一类的uri进行匹配限流,可以跨多个微服务。

二、gateway 整合 sentinel 实现网关限流:

那么接下来我们就介绍下 spring cloud gateway 如何整合 sentinel,至于如何搭建网关项目和整合nacos注册中心上篇文章我们已经介绍过了,感兴趣的读者请阅读这篇文章:Spring Cloud Gateway 服务网关的部署与使用详细介绍

1、添加 sentinel 相关依赖:

 		<!-- 引入sentinel进行服务降级熔断 -->
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
		</dependency>
		<!-- gateway网关整合sentinel进行限流降级 -->
		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
		</dependency>

2、配置文件中添加 sentinel 控制台的配置:

# sentinel看板相关配置
spring.cloud.sentinel.eager = true
spring.cloud.sentinel.transport.dashboard = 172.28.190.101:8999

3、启动网关项目:

对于网关项目,我们需要在原启动参数的基础上添加如下启动参数,标记该应用为 API Gateway 类型:

# 注:通过 Spring Cloud Alibaba Sentinel 自动接入的 API Gateway 整合则无需此参数
-Dcsp.sentinel.app.type=1

4、访问 sentinel 控制台:

至此,我们就已经将 Spring Cloud Gateway 与 Sentinel 整合好了,进入 sentinel 控制台就能够看到网关项目被监控了

三、sentinel 网关流控规则的介绍:

整合好 Spring Cloud Gateway 与 Sentinel 之后,接下来我们介绍下如何基于 sentinel-dashboard 控制台进行网关流控,如下图所示&

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Cloud Gateway 整合 sentinel 实现流控熔断 的相关文章

  • 带阴影的弯曲 Android 工具栏

    我需要为工具栏或卡片视图提供弯曲的底视图 我尝试过的 bg toolbar xml
  • 合并两个位图图像(并排)

    任何人都可以帮助将两个位图图像合并为单个位图 在android中 并排 谢谢 尤瓦拉吉 您可以使用Canvas 查看这篇文章 http www jondev net articles Combining 2 Images in Androi
  • 查找回收器视图中的第一个可见项目是否是列表的第一项

    我有一个包含 13 个数据项的回收器视图 我想知道列表中的第一项是否可见 我知道像这样的方法findFirstVisibleItemPosition and findLastVisibleItemPosition但他们没有说明第一个可见项目
  • Android studio 在日志猫中“清除全部”,更改日志级别过滤器时日志仍然会回来

    在 LogCat 中 当我单击 全部清除 按钮时 它似乎清除了所有日志 但是 如果我更改日志级别并返回到之前的日志级别 则所有日志都会返回 例如 我正在查看 Verbose 我选择 全部清除 日志清除 我切换到 调试 我切换回 详细 现在所
  • 在 Android 中的活动、服务和应用程序之间传递变量

    有人可以给我提供以下活动 服务 应用程序组合的示例吗 我拥有这三个 但我已经把我的应用程序弄得一团糟 试图在这个地方传递一堆变量 现在我不知道发生了什么 请注意 我是 Android 新手 最近我一直在努力解决这个问题 因为有很多方法可以实
  • 无法解析符号 FlutterActivity

    我使用 VCS gt Checkout from Version Control 将 flutter 项目从 github 导入到 Android Studio 中 现在我面临的问题是 Cannot resolve symbol Flutt
  • layout.xml 的用途是什么?

    人们为什么使用layout xml在他们的resources like
  • 下载图像并显示它

    应用程序的主要目的是下载和显示图像 但是当我尝试启动应用程序时它崩溃了 这是我的代码 private DownloadImageTask task protected void onCreate Bundle savedInstanceSt
  • 在 Android 中使用 iText 读取或打开 PDF 文件

    我是 Android 应用程序开发新手 使用 iText 我完成了 PDF 创建并在创建的文件上写入 现在我想阅读该 PDF 文件 如何使用 iText 打开或阅读 PDF 文件 例子将是可观的 那么提前 哪个是渲染 PDF 文件的最佳库
  • Facebook LoginActivity 未正确显示

    我有一个使用 Facebook 登录的应用程序 我有 FacebookSDK 并且使用 com facebook LoginActivity 问题是 在 10 英寸平板电脑上 当显示软键盘时 活动无法正确显示 我使用的是 Samsung G
  • 手动启用时 Firebase Crashlytics 不报告崩溃

    Crashlytics 在没有选择加入报告的情况下也能正常工作 但一旦我根据规定设置了选择加入报告 它就会停止报告任何内容tutorial https firebase google com docs crashlytics customi
  • 有没有办法在Android上创建一个三角形按钮?

    有没有办法创建一个三角形的按钮 我知道我可以将三角形图像作为背景 但这将使三角形之外的区域可单击 有没有办法固定按钮角 X 和 Y 以便我可以将其变成三角形 您可以覆盖OnTouch http developer android com r
  • Android开发:未定义方法

    大家好 我是 Android 和 Eclipse 的新手 我刚刚遵循了developer android com 上的教程 现在我在添加操作栏 http developer android com training basics actio
  • Android:如何使视图增长以填充可用空间?

    这看起来很简单 但我不知道该怎么做 我有一个带有 EditText 和两个 ImageButtons 的水平布局 我希望 ImageButtons 具有固定大小 并且 EditText 占据布局中的剩余空间 如何才能做到这一点
  • 如何更改锁屏自定义文本(所有者信息)?

    我写了程序代码 String message This is test Settings System putString context getContentResolver Settings Secure LOCK PATTERN EN
  • Google Android Drive api 在已安装版本上登录失败

    我开发了一个使用 GoogleDrive api 的 Android 应用程序 当处于调试状态或运行调试版本时 应用程序 工作正常 并正确验证附加的谷歌帐户 等 当我构建发行版本时 使用我的签名密钥 并且 安装apk文件 当我运行时 Goo
  • 按名称查找视图

    是否可以通过名称而不是 id 来查找视图 findViewById R id someView 但我想做这样的事情 findViewByName someView 在处理 xml 时 您必须通过标识符查找视图 但是您可以使用以下方式查找标识
  • gradle-experimental:0.1.0 buildConfigField

    谁知道怎么定义buildConfigField在实验性的 gradle 插件中 android productFlavors create demo applicationId com anthonymandra rawdroid buil
  • 基于BluetoothChat示例通过蓝牙套接字发送文件

    大家好 根据我之前问的一个问题 我已经能够将文件转换为其他字节数组 以便使用以下写入方法 public void sendFile Log d TAG sending data InputStream inputStream null Ur
  • Android:获取最新意图

    如何获取发送到活动的最后一个意图 的文档onNewIntent 建议我需要做这样的事情 class MyActivity public void onNewIntent Intent intent setIntent intent reac

随机推荐

  • 【测评】用这款神器2小时就撸完了1天工作量的代码!爽

    目 录 一 写在前面 二 测评信息 三 测评体验 3 1 安装方便 3 2 始于颜值 3 2 1 简约美观的主题 3 2 2 多变时尚的风格 3 3 忠于强大 3 3 1 快捷的搜索 3 3 2 丰富的功能 3 3 3 开发者神器 3 4
  • [LeetCode] 811. 子域名访问计数

    题目描述 一个网站域名 如 discuss leetcode com 包含了多个子域名 作为顶级域名 常用的有 com 下一级则有 leetcode com 最低的一级为 discuss leetcode com 当我们访问域名 discu
  • python android 录制屏幕

    def settingtime while True starttime time strftime H M S recordcmd adb shell screenrecord sdcard demo mp4 pullfile adb p
  • 开发者的时代红利在哪里?

    2021 年和 2022 年 也许给很多人上了一场关于 风险意识教育 的课程 无论你是 最难 毕业季中的应届毕业生 还是在职场中苦寻事业道路的各行从业者 这一课众生平等 在疫情影响之下 经济大环境动荡 要想在市场下行的背景下全身而退 就需要
  • c++拷贝构造函数(深拷贝,浅拷贝)详解

    一 什么是拷贝构造函数 首先对于普通类型的对象来说 它们之间的复制是很简单的 例如 int a 100 int b a 而类对象与普通对象不同 类对象内部结构一般较为复杂 存在各种成员变量 下面看一个类对象拷贝的简单例子 include
  • 引入wangeditor 报错 error in ./node_modules/@wangeditor/editor/dist/index.esm.js

    ERROR Failed to compile with 1 errors 17 53 12 error in node modules wangeditor editor dist index esm js Module parse fa
  • Mac升级之后已破解的intellij idea无法启动

    打开终端 进入 gt gt gt Users ethan Library Application Support JetBrains IntelliJIdea 对应版本 gt gt gt vim idea vmoptions 删除之前配置的
  • Struts2反序列化漏洞复现

    环境 vulhub 环境搭建 进入s2 048目录 切换root用户 启动漏洞环境 docker compose up d 漏洞复现 浏览器访问 showcase Gangster Name输入 233 233 其余随便填 将Gangste
  • Linux服务器遭受黑客攻击时的日志分析排除

    0x00 前言 Linux系统拥有非常灵活和强大的日志功能 可以保存几乎所有的操作记录 并可以从中检索出我们需要的信息 本文简介一下Linux系统日志及日志分析技巧 0x01 日志简介 日志默认存放位置 var log 查看日志配置情况 m
  • Postman 如何进行参数化

    前言 Postman作为一款接口测试工具 受到了非常多的开发工程师的拥护 那么做为测试 了解Postman这款工具就成了必要的了 这篇文章就是为了解决Postman怎么进行参数化的 全局变量 全局变量是将这个变量设置成整个程序的都可以用 不
  • SSH客户端工具——PuTTY(1)

    引言 本文介绍了SSH客户端工具PuTTY的下载和在Windows下的安装方法 怎么使用PuTTYgen生成SSH密钥对 以及如何通过PuTTY远程登录SSH服务器 一 安装PuTTY PuTTY是在Windows平台下常用的SSH客户端工
  • 羊年计划

    今天是新年上班第一天 告诉自己 要有个计划 要改变 要成就 要突破 要加油 那么到底要如何呢 新年里要做哪些事呢 订婚 婚姻大事 要包容 要相亲相爱 今年我要带着宝贝儿走出去 到处玩 我要带着宝宝坐下来 为梦想奋斗 减肥 健康的身体是革命的
  • 【测试开发】自动化测试在美团外卖的实践与落地

    文章目录 自动化测试在美团外卖的实践与落地 1 项目背景 2 项目目标 3 方案选型 4 实践和探索 4 1 问题和挑战 4 2 前置条件准备 4 3 用例录制与回放的数据一致性 4 4 用例录制与回放的操作一致性 4 5 可溯源的自动化测
  • 你假笨JVM参数 - 001 ReservedCodeCacheSize

    你假笨JVM参数分享全整理 微信小程序 JVMPocket JVM参数交流平台 Javaer的神奇口袋 序号 001 时间 2017 07 13 参数 XX ReservedCodeCacheSize 含义 Reserved code ca
  • C++程序设计初步——关系运算和逻辑运算

    C 中有众多的操作符来对其C 的程序内容进行运算 有 3 6 关系运算和逻辑运算 C 中若要比较数据时可以使用关系运算符 同样在进行逻辑层面的运算时 用逻辑运算符将逻辑量进行连接 3 6 1 关系运算和关系表达式 C 的关系运算符 lt 小
  • Matlab——二维绘图(最为详细,附上相关实例)

    为了帮助各位同学备战数学建模和学习Matlab的使用 今天我们来聊一聊 Matlab 中的绘图技巧吧 对于 Matlab 这样的科学计算软件来说 绘图是非常重要的一项功能 在数据处理和分析时 良好的绘图技巧能够更直观地呈现数据 增强数据可读
  • Ubuntu16.04+cuda8.0安装教程

    1 安装nvidia驱动 首先去官网上查看适合你GPU的驱动 例如 本人的GPU适合的驱动如图 执行如下语句 安装 sudo add apt repository ppa graphics drivers ppa sudo apt get
  • MAVEN 报错:Plugin 'org.apache.maven.plugins:maven-compiler-plugin:2.3.2' not found

    一 问题 MAVEN 设置编译版本时 报错 Plugin org apache maven plugins maven compiler plugin 2 3 2 not found 如下图 配置如下 二 解决方法 将JDK版本跟POM文件
  • web安全 基础

    web发展史 web1 0 个人网站 门户站 SQL注入 上传漏洞 web2 0 微博 Blog XSS CSRF web流程 客户端 前段 钓鱼 暗链 XSS 点击劫持 CSRF URL跳转 服务端 后端 SQL注入 命令注入 文件上传
  • Spring Cloud Gateway 整合 sentinel 实现流控熔断

    一 什么是网关限流 在微服务架构中 网关层可以屏蔽外部服务直接对内部服务进行调用 对内部服务起到隔离保护的作用 网关限流 顾名思义 就是通过网关层对服务进行限流 从而达到保护后端服务的作用 Sentinel 从 1 6 0 版本开始就提供了