gateway整合sentinel限流不生效排查

news2024/9/24 7:15:58

问题

线上的sentinel 在测试压测时候可以正常被限流 但是在正常的流量中 发现被限流的接口很少 (我发誓肯定都配置了限流规则)

约定

文中的 服务名称以及地址 都被改写了

排查步骤

1.检查相关配置 以及 pom依赖配置 发现SentinelGatewayFilter 重复配置

2.猜测可能是配置没有进行初始化 或者初始化存在问题 去掉相关的配置初始化 直接使用sentinel -dashboard 进行配置

3.部署并搭建dashborad 添加相关配置 (spring.cloud.sentinel.transport.dashboard=localhost:8888
),使服务启动注册到sentinel-dashboard中 访问 localhost:8888 (默认是端口8080 可以在启动时候指定 java -Dserver.port=8888 -jar ./sentinel-dashboard-1.8.6.jar &) 需要登录 默认账号密码 都是sentinel 效果如下
在这里插入图片描述

4.在流控规则中 添加具体的流控配置 因为我们没有配置API 所以只有 根据routeId 配置

在这里插入图片描述

5.接下来使用 压测工具进行 压测 发现限流规则 并没有生效

6.开始漫长的寻找不生效原因

。。。。。。。。。。。。。。

7.后来找到 可能是版本原因 升级 如下组件的版本

com.alibaba.cloud spring-cloud-starter-alibaba-sentinel 2.2.1.RELEASE com.alibaba.cloud spring-cloud-alibaba-sentinel-gateway 2.2.0.RELEASE

8.后来 因为其他的版本不兼容问题 只能整理升级 springboot springcloud springcloud-alibaba

于是根据 spring-cloud-alibaba 官方提供的版本说明 进行了 版本 升级 官方版本说明地址 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
目前使用的版本
spring cloud alibaba 2.2.7.RELEASE
spring cloud Hoxton.SR12
spring boot 2.3.12.RELEASE

9.升级过后,首先去掉 代码中 sentinel 的重复配置 同时在nacos的限流配置中 仅保留一个接口的限流配置 同时增加 nacos中 sentinel 相关的配置

10.启动 使用jmter 压测 发现限流生效了

后续的改进

去掉配置的 异常拦截 (旧的配置中定义了 ErrorWebExceptionHandler 处理器) 使用sentinel的拦截配置
调整多个过滤器的顺序 (异常处理器→限流拦截器→全局日志拦截器 ->cat 链路->cat过滤)

官方网关限流文档: https://sentinelguard.io/zh-cn/docs/api-gateway-flow-control.html

阿里巴巴cloud官方文档 : https://github.com/alibaba/spring-cloud-alibaba/blob/2022.x/spring-cloud-alibaba-docs/src/main/asciidoc-zh/sentinel.adoc

后记 以下两个问题 也耽误了很久

问题1. 配置了某个服务的某个接口 限流规则 导致某个服务的其他的接口 也被限流

有问题的配置 {“resource”:“mall_service”,“apiDefinitions”:[{“matchStrategy”:0,“pattern”:“/mall-service/entry/scene/xxx”}],“count”:10,“intervalSec”:1,“controlBehavior”:0}

问题表现 在请求 /该服务下另一个接口 也被限流 sspmall-service/client/points/user/balance

解决办法

指定resource 名称为 特殊的名称 而不是微服务的名称
指定resorceMode=1 含义是 使用自定义API限流
正确的配置

{“resource”:“mall_service_entry_scene_xxx”,“resourceMode”:1,“apiDefinitions”:[{“matchStrategy”:0,“pattern”:“/mall-service/entry/scene/xxx”}],“count”:10,“intervalSec”:1,“controlBehavior”:0}

resource是 同一个自定义API组的名称 以及 限流规则中使用的 自定义API组名称

问题二 本地部署的 dashboard 和 test环境部署的dashboard 采集的链路不一致
本地部署的效果图
在这里插入图片描述
测试环境上的效果图
在这里插入图片描述
注意观察 一个是叫 请求链路 一个叫做簇点链路 还有资源名 想差很大 同时 当簇点链路为测试环境中的时 接口的限流将失效

本地部署在自己电脑上 同时服务也是在idea中运行
test环境dashboard 部署在服务器(java -jar方式) 而应用是部署在k8s环境中 同时 dashboard和 应用通信的端口不同

解决办法: 测试环境中的dashboard 也部署到和应用相同的k8s环境里

误区 因为看到 测试环境中的链路 和 zuul 集成 sentinel的时候 链路一样 导致一直在找 zuul是否被生效了 而忽略了 dashboard请求 gateway-service 端口不同 导致链路采集有误

the end

三年过年没回家了 明天将踏上回家路
在这里插入图片描述

新春快乐

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[论文阅读] (26) 基于Excel可视化分析的论文实验图表绘制总结——以电影市场为例

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学术路上期…

【iOS】—— 内存的五大分区

内存的五大分区 文章目录内存的五大分区五大分区分别是1.栈区优点:2.堆区优点:3.常量区4.静态区5.代码区static、extern、const关键字比较1.static关键字static关键字作用:全局静态变量局部静态变量2.extern全局变量对内的全局变量外部全局变…

25.Isaac教程--Carter机器人

Carter机器人 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html Carter 是一个机器人平台,使用 Segway 的差分底座、用于 3D 范围扫描的 Velodyne P16、ZED 相机、IMU 和 Jetson TX2 作为系统的核心。 与定制安装支架一起,它…

WSL2 Ubuntu+gnome图形界面的安装血泪史(亲测有效)

WSL2 Ubuntugnome图形界面写在最前面(血泪史)1.wsl2 安装2.Ubuntu安装3.VcXsrv安装与启动4. gnome图形界面的配置5.显卡驱动的升级写在最前面(血泪史) 前因 近期遇到一个问题,需要在ubuntu虚拟机上用opengl3.3以上的版…

导航相关产品调研

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言1、现有的业务产品2、常做的导航规控业务前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多…

“水果零售第二股”百果园上市首日市值近百亿

“水果零售第二股”来了!今日(1月16日),国内最大水果零售商深圳百果园实业(集团)股份有限公司(下称“百果园”,02411.HK)正式挂牌港交所。▲图源:百果园官网百果园此次IP…

8.框架Spring

一、基本概念 Spring 是 Java EE 编程领域的一款轻量级的开源框架&#xff0c;由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立&#xff0c;它的目标就是要简化 Java 企业级应用程序的开发难度和周期。 导入依赖&#xff1a; <dependency><groupId>o…

操作系统(一)

操作系统&#xff08;一&#xff09; 1、什么是操作系统 操作系统是指控制和管理整个计算机系统的硬件与软件资源&#xff0c;合理的组织、调度计算机的工作与资源分配&#xff0c;进而为用户和其他软件提供方便接口与环境的程序集合。操作系统是计算机系统中最基本的系统软件…

Android 深入系统完全讲解(24)

https://blog.csdn.net/weixin_41101173/article/details/80374455 理解了绘制内容&#xff0c;解决了这部分&#xff0c;下来我们来说说关于音视频的其他部分。 所有的文件&#xff0c;都有一个叫做格式的东西存在&#xff0c;MP3&#xff0c;WAV&#xff0c;而处理这个格式的…

zookeeper集群安装

zookeeper集群安装 1. 安装环境介绍 下载地址&#xff1a; http://archive.apache.org/dist/zookeeper/ 安装版本&#xff1a; 3.7.0 安装包&#xff1a; apache-zookeeper-3.7.0-bin.tar.gz 安装目录&#xff1a; /opt 机器IP&#xff1a; 10.28.19.107 10.28.19.108 10…

字符矩阵内单词搜索

单词搜索 问题链接&#xff1a;word search&#xff01;&#xff01;&#xff01; 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通…

【阅读笔记】c++ Primer Plus——第九章

内存模型和命名空间 单独编译 c程序分成三部分 第一部分&#xff1a;包含结构声明和使用这些结构的函数原型(头文件)第二部分&#xff1a;包含与结构有关的函数代码(源代码文件)第三部分&#xff1a;包含调用与结构相关的函数代码(源代码文件)头文件包含了用户定义类型的定义…

FPGA 20个例程篇:19.OV7725摄像头实时采集送HDMI显示(二)

第七章 实战项目提升&#xff0c;完善简历 19.OV7725摄像头实时采集送HDMI显示&#xff08;二&#xff09; 在正式介绍OV7725 CMOS Sensor视频采集前&#xff0c;首先需要去详细说明OV7725的寄存器配置接口&#xff0c;这里有OmniVision公司推出的官方手册 “OV7725_software_…

8个必须掌握的Blender拓扑技巧

组合 3D 模型的过程对后续过程影响很大 - 稍后编辑的难易程度、应用光照和着色器时的外观效果如何、动画时变形的难易程度等等。 一个好的模型对于 CG 管道的所有其他部分的良好运行至关重要。 另一方面&#xff0c;凌乱的拓扑结构会使流程的其余部分成为一场灾难。 你能做些…

IB地理科补习有用吗?

IB地理科的补习如何帮助学生改变学科的表现&#xff1f;这可以从几方面来做分析。 1. 训练 第一是训练。我们老师会按来补习的同学的个人需求、时间和个性&#xff0c;提供很多不同程度的训练&#xff0c;帮助他们建立一个正确的能力系统&#xff08;skill set&#xff09;去应…

二、预训练模型预测(Datawhale组队学习)

文章目录安装配置环境ImageNet预训练图像分类模型预测单张图像-英文载入预训练图像分类模型图像预处理执行图像分类预测预测结果分析ImageNet预训练图像分类模型预测单张图像-中文预训练图像分类模型图像预处理执行图像分类预测预测结果分析ImageNet预训练图像分类模型预测视频…

汽车CAN总线硬件电路原理

根据ISO 11898的定义&#xff0c;物理层被细分成3 个子层&#xff0c;它们分别是物理信令&#xff08;位编码定时和同步&#xff09;、物理媒体连接&#xff08;驱动器和接收器特性&#xff09;和媒体相关接口&#xff08;总线连接器&#xff09;。物理信令子层和数据链路层之间…

打包iOS App并上架到TestFlight测试

开发者账号 首先需要注册一个开发者账号&#xff0c;不然什么都免谈。在手机Apple Developer上注册给钱就行了&#xff0c;个人开发者一年688元。 打包App App开发好后&#xff0c;就可以通过XCode打包。打包前选好版本号&#xff0c;不要跟以前提交的一样&#xff0c;重复的…

亚马逊云科技携手普华永道,助力泉峰集团破解数据治理与使用难题

大数据时代的到来&#xff0c;掀起了企业数字化转型的热潮&#xff0c;对于制造行业的企业来说&#xff0c;除了顺应发展潮流快速开启数字转型之外&#xff0c;以创新思维不断拓展业务广度&#xff0c;对于自身发展也有着格外重要的意义。数字化水平能否与创新发展的脚步保持一…

Acwing---1237.螺旋折线

螺旋折线1.题目2.基本思想3.代码实现1.题目 如下图所示的螺旋折线经过平面上所有整点恰好一次。 对于整点 (X,Y)(X,Y)(X,Y)&#xff0c;我们定义它到原点的距离 dis(X,Y)dis(X,Y)dis(X,Y) 是从原点到 (X,Y)(X,Y)(X,Y) 的螺旋折线段的长度。 例如 dis(0,1)3,dis(−2,−1)9di…