spring cloud alibaba (7)- sentinel系统保护

之前的熔断、限流都是针对某一个资源的保护措施。而系统保护,是对整个系统的所有请求进行统一评估,统一限流。

系统保护规则 

如下,每一条规则都是针对系统所有请求,设置不同的限流规则阀值,没有设置的规则默认不开启。其中一条规则达到阀值,整个系统都会被限流,直接拒绝请求并返回状态码429。

	@PostConstruct
	private void initSystemRule() {
	    List<SystemRule> rules = new ArrayList<>();
	    SystemRule rule = new SystemRule();
            rule.setHighestCpuUsage(0.8);//CPU使用率80%
            rule.setAvgRt(10);   //平均响应时间10毫秒
            rule.setQps(10);   //Qps并发10
            rule.setMaxThread(10);  //线程并发10
            rule.setHighestSystemLoad(2.5);    //系统负载2.5
	    rules.add(rule);
	    SystemRuleManager.loadRules(rules);
	}

响应时间、Qps、线程并发等之前已经讲过。下面主要介绍一下highestSystemLoad参数,系统负载

load系统负载

load即系统负载,这个参数仅对linux有效,是cpu能处理的最大进程数的一个指标值。假如系统最多能承载10个进程,那么

  • 有5个进程运行时,load值为0.5,即50%,所有进程能够通畅运行,还有50%空闲空间。
  • 有10个进程运行时,load值为1,即100%,所有进程能够通畅运行,没有空闲
  • 有20个进程运行时,load值为2,即200%,有10个进程能够通畅运行,还有10个在等待中。

highestSystemLoad

在linux命令行输入top命令,右上角会显示load average,有三个指标值,load1,load5,load15。

分别是最近1分钟、5分钟、15分钟的平均系统负载,而load1就是本篇highestSystemLoad参数的对照值。当load1大于你设置的highestSystemLoad值,则触发限流。官方推荐的highestSystemLoad值为:cpu核心数 * 2.5

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值