【六】SpringCloud Alibaba之整合Sentinel(实现流量控制)

简介: 【六】SpringCloud Alibaba之整合Sentinel(实现流量控制)

一、 安装Jmeter

下载地址:http://jmeter.apache.org/download_jmeter.cgi

ps:安装过程特别慢,还可能失败(建议手机打开连接安装,然后通过通讯工具发送到PC端。),教程可以参考下面这位大佬的:(17条消息) JAVA常用工具--JMeter压力测试工具_lanyh996的博客-CSDN博客_java压力测试工具

安装之前需要配置java运行环境,安装之后还需要配置jmeter的环境变量,自行百度。

安装之后如下图所示:(设置里更改为了中文)

二、 安装Sentinel

下载地址:github.com,贼慢,可以去找百度云资源,也可以手机下载后传到电脑。

下载后进入cmd,如下:

由于是jar包所以可以直接运行,该jar包默认端口是8080,执行java -jar + jar包名称。

在浏览器访问localhost:8080,进入如下界面(刚进入是空的,因为还没有跑服务到该地址,所以该地址会是空的),

下面会修改代码,修改现有服务的配置文件,让sentinel可以拦截服务并进行限流控制。

三、修改demo代码

前几章整合nacos和dubbo之后已经有了如下代码(看不懂可以翻阅前几章):

框选处为将要修改的文件。

1、修改配置类(重点):

前几章我已经将配置文件交由nacos管理,所有不会使用本地配置,如果你没有使用nacos上面的配置文件,你也可以将sentinel的配置继续写到本地配置application.yml配置文件,如下:

框选处是新增的配置,dashboard是sentinel的地址,eager是取消控制台的懒加载(默认是关闭的,此处可以开启)。

2、新增测试接口:

如上图,新增一个test1接口。

3、新增依赖

我直接在父工程新增依赖,子模块都会生效

如此就可以了,下面进行演示。

四、演示

ps:前提是nacos和sentinel已经启动了。

1、 运行项目

运行上面更改配置的demo-provider子项目,将服务注册到nacos并使用nacos上面的配置(前面章节有讲到)。

再展示一下nacos修改后的配置:

2、jmeter调用接口(sentinel不做处理)

我在此处创建了10个线程,一秒请求10次接口。点击运行。

结果:

调用了10次,时间上有些稍微的误差。

五、sentinel设置流量控制

点击簇点链路 ,选择接口右侧的流控按钮,

填写该接口每秒允许通过数量,QPS是指服务器每秒响应的请求次数

点击新增,可以在流控规则列表进行查看,如下图:

默认处理方式是快速失败(如果该接口出现错误,后面的线程访问不会一直在此处卡着,导致服务器出现宕机的可能),类似hystrix。

六、 演示

1、jmeter调用接口(sentinel已做处理)

运行测试计划,执行了十次。

控制台打印了4次,10个线程成功请求了4次。

设置的阀值是3,存在一定误差(不在同一秒)。

拒接的请求默认返回的Blocked by Sentinel (flow limiting)。

下一章继续进行sentinel的学习,修改默认的返回值,进行自定义返回值处理和修改流控的其他效果。

目录
相关文章
|
2月前
|
SpringCloudAlibaba API 开发者
新版-SpringCloud+SpringCloud Alibaba
新版-SpringCloud+SpringCloud Alibaba
|
3月前
|
Java UED Sentinel
微服务守护神:Spring Cloud Sentinel,让你的系统在流量洪峰中稳如磐石!
【8月更文挑战第29天】Spring Cloud Sentinel结合了阿里巴巴Sentinel的流控、降级、熔断和热点规则等特性,为微服务架构下的应用提供了一套完整的流量控制解决方案。它能够有效应对突发流量,保护服务稳定性,避免雪崩效应,确保系统在高并发下健康运行。通过简单的配置和注解即可实现高效流量控制,适用于高并发场景、依赖服务不稳定及资源保护等多种情况,显著提升系统健壮性和用户体验。
85 1
|
1月前
|
JSON SpringCloudAlibaba Java
Springcloud Alibaba + jdk17+nacos 项目实践
本文基于 `Springcloud Alibaba + JDK17 + Nacos2.x` 介绍了一个微服务项目的搭建过程,包括项目依赖、配置文件、开发实践中的新特性(如文本块、NPE增强、模式匹配)以及常见的问题和解决方案。通过本文,读者可以了解如何高效地搭建和开发微服务项目,并解决一些常见的开发难题。项目代码已上传至 Gitee,欢迎交流学习。
129 1
Springcloud Alibaba + jdk17+nacos 项目实践
|
26天前
|
消息中间件 自然语言处理 Java
知识科普:Spring Cloud Alibaba基本介绍
知识科普:Spring Cloud Alibaba基本介绍
57 2
|
1月前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
1月前
|
负载均衡 算法 Java
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
40岁老架构师尼恩分享了关于SpringCloud核心组件的底层原理,特别是针对蚂蚁集团面试中常见的面试题进行了详细解析。内容涵盖了Nacos注册中心的AP/CP模式、Distro和Raft分布式协议、Sentinel的高可用组件、负载均衡组件的实现原理等。尼恩强调了系统化学习的重要性,推荐了《尼恩Java面试宝典PDF》等资料,帮助读者更好地准备面试,提高技术实力,最终实现“offer自由”。更多技术资料和指导,可关注公众号【技术自由圈】获取。
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
|
2月前
|
人工智能 前端开发 Java
Spring Cloud Alibaba AI,阿里AI这不得玩一下
🏀闪亮主角: 大家好,我是JavaDog程序狗。今天分享Spring Cloud Alibaba AI,基于Spring AI并提供阿里云通义大模型的Java AI应用。本狗用SpringBoot+uniapp+uview2对接Spring Cloud Alibaba AI,带你打造聊天小AI。 📘故事背景: 🎁获取源码: 关注公众号“JavaDog程序狗”,发送“alibaba-ai”即可获取源码。 🎯主要目标:
93 0
|
2月前
|
监控 Java Nacos
SpringCloud基础5——微服务保护、Sentinel
sentinel、雪崩问题、流量控制、隔离和降级、授权规则、规则持久化
SpringCloud基础5——微服务保护、Sentinel
|
5月前
|
监控 Java Sentinel
使用Sentinel进行服务调用的熔断和限流管理(SpringCloud2023实战)
Sentinel是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
151 3
|
4月前
|
监控 Java 应用服务中间件
SpringCloud面试之流量控制组件Sentinel详解
SpringCloud面试之流量控制组件Sentinel详解
230 0