前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >SpringCloudAlibaba基础实践教程之Sentinel(一)- 实现容错

SpringCloudAlibaba基础实践教程之Sentinel(一)- 实现容错

作者头像
JavaEdge
修改2025-03-13 13:40:14
修改2025-03-13 13:40:14
11000
代码可运行
举报
文章被收录于专栏:JavaEdgeJavaEdge
运行总次数:0
代码可运行

3 使用Sentinel实现容错

  • 何为 Sentinel

整合

  • 添加依赖即可
  • 整合成功之后,会暴露actuator/Sentinel端点,所以再添加如下依赖
  • 还需要配置,才能暴露端点(默认是不暴露的)

5 流控规则

直接

  • 新增规则

关联

当关联的资源达到阈值,就限流自己

链路

只记录指定链路.上的流量

Warm Up

◆ 根据codeFactor(默认3)的值,从阈值/codeFactor ,经过预热时长,才到达设置的QPS阈值

降级规则

【使用、流程、注意点、源码】

  • 注意先把其他规则删除

降级 - RT

降级-RT-注意点

◆ RT默认最大4900ms

● 通过-Dcsp.sentinel.statistic.max.rt=xxx修改

异常比例

异常数

  • 注意点 时间窗口 < 60秒可能会出问题

降级 - 聊聊断路器三态

◆ Sentinel的断路器没有半开状态

系统规则详解【使用、计算规则、源码】

系统-Load

◆ 当系统load1 ( 1分钟的load )超过阈值,且并发线程数超过系统容量时触发,建议设置为CPU核心数* 2.5( 仅对Linux/Unix-like机器生效, Win无效)

◆ 系统容量 = maxQps * minRt

● maxQps :秒级统计出来的最大QPS

● minRt :秒级统计出来的最小响应时间

系统-RT、线程数、入口QPS

◆ RT : 所有入口流量的平均RT达到阈值触发

◆ 线程数:所有入口流量的并发线程数达到阈值触发

◆入口QPS : 所有入口流量的QPS达到阈值触发

系统 - 相关源码

授权规则

代码配置规则

Sentinel与控制台通信原理剖析

  • 控制台如何获取到微服务的监控信息
  • 用控制台配置规则时,控制台是如何将规则发送到各个微服务的呢?

◆ 注册/心跳发送

● SimpleHttpHeartbeatSender

◆通信API

● CommandHandler的实现类

控制台相关配置项

应用端连接控制台配置项

代码语言:javascript
代码运行次数:0
复制
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 相关源码

  • SentinelResourceAspect
  • AbstractSentinelAspectSupport

RestTemplate整合Sentinel

启动类加上该注解即可

开关

resttemplate.sentinel.enabled

相关源码

●sentinel.custom.SentinelBeanPostProcessor

Feign整合Sentinel

限流降级发生时,如何定制自己的处理逻辑?

  • CC

如何获取到异常?

相关代码

● sentinel.feign.SentinelFeign

Sentinel使用姿势总结

规则持久化

拉模式

推模式

生产环境使用Sentinel

◆ 推拉模式持久化规则

  • 推模式更佳

◆ AHAS

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/05/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3 使用Sentinel实现容错
    • 整合
  • 5 流控规则
    • 直接
    • 关联
    • 链路
    • Warm Up
  • 降级规则
    • 降级 - RT
    • 降级-RT-注意点
    • 异常比例
    • 异常数
    • 降级 - 聊聊断路器三态
  • 系统规则详解【使用、计算规则、源码】
    • 系统-Load
    • 系统-RT、线程数、入口QPS
    • 系统 - 相关源码
  • 授权规则
  • 代码配置规则
  • Sentinel与控制台通信原理剖析
  • 控制台相关配置项
    • 应用端连接控制台配置项
    • 控制台配置项
  • Sentinel API详解
  • SentinelResource注解详解
    • @SentinelResource 相关源码
  • RestTemplate整合Sentinel
    • 开关
    • 相关源码
  • Feign整合Sentinel
    • 限流降级发生时,如何定制自己的处理逻辑?
    • 如何获取到异常?
    • 相关代码
  • Sentinel使用姿势总结
  • 规则持久化
    • 拉模式
    • 推模式
  • 生产环境使用Sentinel
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档