sentienl
整合springboot
Spring Cloud Alibaba Sentinel
导入依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency>
配置受保护资源(自动)
下载jar包并且运行(指定端口号)
java -jar sentinel-xxxx --server.port=8333
每个用到sentinel 的微服务配置通信端口
spring: cloud: sentinel: transport: port: 8719 dashboard: localhost:8333
启动项目测试一下
默认账号密码:sentinel
懒加载,经过请求后就可以添加流控信息
QPS 每秒访问量, 控制后方法都不会被调用
实时监控
导入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
配置:
management.endpoints.web.exposure.exclude=*
测试: 访问后等待几秒会刷新界面
流控
自定义流控响应
自定义类R返回 R.异常信息和R.异常码
链路和关联
链路: 指定入口到这个资源的才会限流, 其他的情况下不限流
关联: B流量大就限制A (读写)
预热时长 : 几秒内慢慢达到峰值
排队等待: 限流外的排队慢慢处理
远程服务崩溃就降级
引入openfeign依赖 然后添加配置
-
feign.sentinel.enabled=true
编写代码 测试
配置降级策略
平均响应时间(ms), 异常比例, 异常数 ,窗口时间(在多少秒内不会再调用)
调用方不去调用资源[熔断]
被调用方去服务开启但是不服务,返回的是[]降级]数据
意思是调用方和被调用方都可以做降级,被调用方做降级就相当于是全局性的(虽然在运行,但返回的是降级数据[无效的])
1.通过try -catch
2.支持通过 @SentinelResource
注解定义资源并配置 blockHandler
和 fallback
函数来进行限流之后的处理
网关流控
导入依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId> <version>2.2.1.RELEASE</version> </dependency>
添加配置
启动测试
网关限流, 可以通过细化,限制固定请求头的 或者IP的等等
sleuth+zipkin服务链路追踪
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?