我是靠谱客的博主 柔弱嚓茶,最近开发中收集的这篇文章主要介绍Sentinel流量控制1、Sentinel微服务限流2、QPS限流3、线程数限流4、流控模式5、流控效果(只适用于QPS限流):,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Sentinel流量控制

  • 1、Sentinel微服务限流
  • 2、QPS限流
    • 2.1 配置QPS限流
    • 2.2 测试
  • 3、线程数限流
    • 3.1 配置线程数限流
    • 3.2 测试
  • 4、流控模式
    • 4.1 流控模式说明
  • 5、流控效果(只适用于QPS限流):

1、Sentinel微服务限流

Sentinel流量控制(flow control)的原理是监控应用流量的QPS或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。

QPS:每秒的请求数。当每秒请求数超过指定阈值之后对当前请求进行限流。
并发线程数:当服务器中创建线程数超过指定阈值之后对当前请求进行限流。

2、QPS限流

2.1 配置QPS限流

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.2 测试

每秒最大只能接收2个请求,超过2个报错
在这里插入图片描述

3、线程数限流

3.1 配置线程数限流

在这里插入图片描述

3.2 测试

这里使用压力测试工具apache-jmeter-5.2
下载链接:https://download.csdn.net/download/qq_43753724/22032153?spm=1001.2014.3001.5501
配置线程组:
在这里插入图片描述
配置http请求:
在这里插入图片描述
发起请求并在察看结果树中查看
在这里插入图片描述
可以看出,有一个请求没来得及处理。

4、流控模式

4.1 流控模式说明

  • 直接:标识流量控制规则到达阈值直接触发流量控制
  • 关联: 当两个资源之间具有资源争抢或者依赖关系的时候,这两个资源便具有了关联。比如对数据库同一个字段的读操作和写操作存在争抢,读的速度过高会影响写得速度,写的速度过高会影响读的速度。如果放任读写操作争抢资源,则争抢本身带来的开销会降低整体的吞吐量。可使用关联限流来避免具有关联关系的资源之间过度的争抢,举例来说,read_db 和 write_db 这两个资源分别代表数据库读写,我们可以给 read_db 设置限流规则来达到写优先的目的:设置 strategy 为 RuleConstant.STRATEGY_RELATE 同时设置 refResource 为 write_db。这样当写库操作过于频繁时,读数据的请求会被限流。
    在这里插入图片描述
  • 链路:https://github.com/alibaba/Sentinel/wiki/%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6

5、流控效果(只适用于QPS限流):

  • 直接拒绝:默认的流量控制方式,当QPS超过任意规则的阈值之后,新的请求就被立即拒绝,拒绝方式为抛出FlowException。
  • Warm Up:预热/冷启动方式。在系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过冷启动让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮。
  • 匀速排队:严格控制请求通过的间隔时间,即让请求以均匀的速度通过,对应的是漏桶算法。

最后

以上就是柔弱嚓茶为你收集整理的Sentinel流量控制1、Sentinel微服务限流2、QPS限流3、线程数限流4、流控模式5、流控效果(只适用于QPS限流):的全部内容,希望文章能够帮你解决Sentinel流量控制1、Sentinel微服务限流2、QPS限流3、线程数限流4、流控模式5、流控效果(只适用于QPS限流):所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部