首页 > 编程语言 > 详细

SpringCloud Alibaba Sentinel---实现熔断与限流

时间:2020-03-29 22:06:30      阅读:252      评论:0      收藏:0      [点我收藏+]

  前言:不断学习就是程序员的宿命

一、概述

  Github官网:https://github.com/alibaba/Sentinel,就是SpringCloud的Hystrix

  下载地址:https://github.com/alibaba/Sentinel/releases

官网:https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#spring_cloud_alibaba_sentinel

二、Sentinel 控制台

1、启动Sentinel

java -jar sentinel-dashboard-1.7.0.jar

技术分享图片

2、登录Web界面

浏览器访问:http://localhost:8080/,用户名密码均为:sentinel

技术分享图片

 

 

 三、Sentinel流控规则

技术分享图片

 

 

1、流控模式

1.1直接 (默认)

1.1.1 QPS直接失败

  以下设置表示:1秒钟内查询1次就是OK,若次数超过1,就直接-快速失败,报默认错误

技术分享图片

1.1.2线程数直接失败

技术分享图片

1.2、关联

  当关联的资源达到阈值时,就限流自己;当与A关联的资源B达到阈值时,就限流A自己(B惹事,A挂了)

  设置:当关联资源/testB的qps阈值超过1时,就限流/testA的Rest访问地址,当关联资源达到阈值后限制配置好的资源名。

技术分享图片

2、流控效果

  Github:https://github.com/alibaba/Sentinel/wiki/Flow-Control

2.1 直接-快速失败

  直接失败,抛出异常:Blocked by Sentinel(flow limiting)

  源码:com.alibaba.csp.sentinel.slots.block.flow.controller.DefaultController

2.2 直接-预热

  默认coldFactor为3,即请求QPS从threshold/3开始,经预热时长逐渐升至设定的QPS阈值。限流冷启动

  以下是指开始QPS为10/3=3,5秒后慢慢预热至10

技术分享图片

2.3排队等待  

  匀速排队,阈值必须设置为QPS(漏桶算法

  源码:com.alibaba.csp.sentinel.slots.block.flow.controller.RateLimiterController

  以下设置含义:/testA每秒1次请求,超过的话就排队等待,等待的超时时间为20000毫秒。

技术分享图片

SpringCloud Alibaba Sentinel---实现熔断与限流

原文:https://www.cnblogs.com/rmxd/p/12595041.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!