SpringCloudAlibaba之Sentinel(一)- 实现容错
发布日期:2021-06-30 12:25:03
浏览次数:2
分类:技术文章
本文共 2299 字,大约阅读时间需要 7 分钟。
3 使用Sentinel实现容错
- 何为 Sentinel
整合
- 添加依赖即可
- 整合成功之后,会暴露actuator/Sentinel端点,所以再添加如下依赖
- 还需要配置,才能暴露端点(默认是不暴露的)
5 流控规则
直接
- 新增规则
关联
当关联的资源达到阈值,就限流自己
链路
只记录指定链路.上的流量
Warm Up
◆ 根据codeFactor(默认3)的值,从阈值/codeFactor ,经过预热时长,才到达设置的QPS阈值
降级规则
【使用、流程、注意点、源码】
- 注意先把其他规则删除
降级 - RT
降级-RT-注意点
◆ RT默认最大4900ms
● 通过-Dcsp.sentinel.statistic.max.rt=xxx修改异常比例
异常数
-
注意点
时间窗口 < 60秒可能会出问题 -
相关源码
com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule#passCheck -
这里与官方文档描述不同,参见issue
https://github.com/alibaba/Sentinel/issues/910
降级 - 聊聊断路器三态
◆ Sentinel的断路器没有半开状态
◆ 相关Issue : https://github.com/alibaba/Sentinel/pull/553#issuecomment-478318196- pullreq(已关闭) https://github.com/alibaba/Sentinel/pull/525
系统规则详解【使用、计算规则、源码】
系统-Load
◆ 当系统load1 ( 1分钟的load )超过阈值,且并发线程数超过系统容量时触发,建议设置为CPU核心数* 2.5( 仅对Linux/Unix-like机器生效, Win无效)
◆ 系统容量 = maxQps * minRt
● maxQps :秒级统计出来的最大QPS ● minRt :秒级统计出来的最小响应时间 ● 相关源码:- com.alibaba.csp.sentinel.slots.system.SystemRuleManager#checkBbr
系统-RT、线程数、入口QPS
◆ RT : 所有入口流量的平均RT达到阈值触发
◆ 线程数:所有入口流量的并发线程数达到阈值触发 ◆入口QPS : 所有入口流量的QPS达到阈值触发系统 - 相关源码
- com.alibaba.csp.sentinel.slots.system.SystemRuleManager#checkSystem
授权规则
代码配置规则
-
推荐阅读
Sentinel与控制台通信原理剖析
- 控制台如何获取到微服务的监控信息
- 用控制台配置规则时,控制台是如何将规则发送到各个微服务的呢?
◆ 注册/心跳发送
● com.alibaba.csp.sentinel.transport.heartbeat.SimpleHttpHeartbeatSender◆通信API
● com.alibaba.csp. sentinel.command.CommandHandler的实现类控制台相关配置项
应用端连接控制台配置项
spring.cloud.sentinel.transport:# 指定控制台的地址dashboard: localhost:8080# 指定和控制台通信的IP# 如不配置,会自动选择一个IP注册client-ip: 127 .0.0.1# 指定和控制台通信的端口,默认值8719# 如不设置,会自动从8719开始扫描,依次+1,直到找到未被占用的端口port: 8719# 心跳发送周期,默认值null# 但在SimpleHttpHeartbeatSender会用默认值10秒heartbeat- interval-ms: 10000
控制台配置项
Sentinel API详解
- 修改配置
- TestController 核心就是如图示的三个API,不过这样用起来很麻烦,后面就有简单方式哦!
SentinelResource注解详解
@SentinelResource 相关源码
- com.alibaba.csp.sentinel.annotation.aspectj.SentinelResourceAspect
- com.alibaba.csp.sentinel.annotation.aspectj.AbstractSentinelAspectSupport
RestTemplate整合Sentinel
启动类加上该注解即可
开关
resttemplate.sentinel.enabled
相关源码
●org. springframework.cloud.alibaba.sentinel.custom.SentinelBeanPostProcessor
Feign整合Sentinel
限流降级发生时,如何定制自己的处理逻辑?
- CC
如何获取到异常?
相关代码
● org.springframework.cloud. alibaba.sentinel.feign.SentinelFeign
Sentinel使用姿势总结
生产环境使用Sentinel
◆ 推拉模式持久化规则
- 推模式更佳
◆ AHAS
-
开通地址
https://ahas.console.aliyun.com/ -
开通说明
https://help.aliyun.com/document detail/90323.html -
参考
转载地址:https://javaedge.blog.csdn.net/article/details/106091069 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月18日 20时21分50秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
快速的让⼀个数组乱序
2019-04-30
Java JDK中几个经典的版本
2019-04-30
Java 注释
2019-04-30
Java JDK 1.5后的变量声明与赋值支持
2019-04-30
Java 整型
2019-04-30
Java 整型数据溢出探索 计算结果值
2019-04-30
Java 浮点型
2019-04-30
Java 整型除法
2019-04-30
Java 使用var关键字
2019-04-30
Java 字符型
2019-04-30
Java String字符串
2019-04-30
Java ++a 与 a++
2019-04-30
Java 关系运算符
2019-04-30
Java 三目运算符
2019-04-30
Java 逻辑运算符
2019-04-30
什么是数据库?
2019-04-30
MySQL 简介
2019-04-30
SQL语言
2019-04-30
数据库访问接口
2019-04-30
启动 MySQL服务
2019-04-30