当前位置: 移动技术网 > IT编程>开发语言>Java > 荐 阿里微服务架构Spring Cloud Alibaba Sentinel实战

荐 阿里微服务架构Spring Cloud Alibaba Sentinel实战

2020年07月17日  | 移动技术网IT编程  | 我要评论

1、介绍

官网地址:https://sentinelguard.io/zh-cn/docs/introduction.html

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性。

2、与Hystrix、resilience4j对比

Hystrix具有以下功能:

  • 线程池隔离/信号量隔离 Sentinel 不支持线程池隔离;信号量隔离对应 Sentinel 中的线程数限流。
  • 熔断器 Sentinel 支持按平均响应时间、异常比率、异常数来进行熔断降级。
  • Command 创建 直接使用 Sentinel SphU API 定义资源即可,资源定义与规则配置分离。
  • 规则配置 在 Sentinel 中可通过 API 硬编码配置规则,也支持多种动态规则源
  • 注解支持 Sentinel 也提供注解支持
  • 开源框架支持 Sentinel 提供 Servlet、Dubbo、Spring Cloud、gRPC 的适配模块,开箱即用;若之前使用 Spring Cloud Netflix,可迁移至 Spring Cloud Alibaba

Hystrix官方已经停止更新

Sentinel Hystrix resilience4j
隔离策略 信号量隔离(并发线程数限流) 线程池隔离/信号量隔离 信号量隔离
熔断降级策略 基于响应时间、异常比率、异常数 基于异常比率 基于异常比率、响应时间
实时统计实现 滑动窗口(LeapArray) 滑动窗口(基于 RxJava) Ring Bit Buffer
动态规则配置 支持多种数据源 支持多种数据源 有限支持
扩展性 多个扩展点 插件的形式 接口的形式
基于注解的支持 支持 支持 支持
限流 基于 QPS,支持基于调用关系的限流 有限的支持 Rate Limiter
流量整形 支持预热模式、匀速器模式、预热排队模式(流量规则处可配置) 不支持 简单的 Rate Limiter 模式
系统自适应保护 支持 不支持 不支持
控制台 提供开箱即用的控制台,可配置规则、查看秒级监控、机器发现等 简单的监控查看 不提供控制台,可对接其它监控系统

3、安装教程

下载地址:https://github.com/alibaba/Sentinel/releases
直接下载sentinel-dashboard-1.7.1.jar

java -jar sentinel-dashboard-1.7.1.jar

sentinel默认使用8080端口。访问地址:http://127.0.0.1:8080
用户名/密码:sentinel/sentinel

docker安装

docker pull bladex/sentinel-dashboard
docker run --name sentinel -d -p 8858:8858 -d bladex/sentinel-dashboard

访问地址:http://127.0.0.1:8858
用户名/密码:sentinel/sentinel

4、流控规则

以下列举常用的流控规则配置

QPS-直接-快速失败

在这里插入图片描述
QPS-关联-快速失败

在这里插入图片描述
QPS-直接-排队等待

在这里插入图片描述
QPS-直接-Warm Up

在这里插入图片描述

5、降级规则

降级策略,我们通常用以下几种方式来衡量资源是否处于稳定的状态:

  • 平均响应时间 (DEGRADE_GRADE_RT):当资源的平均响应时间超过阈值(DegradeRule 中的 count,以 ms 为单位)之后,资源进入准降级状态。接下来如果持续进入 5 个请求,它们的 RT 都持续超过这个阈值,那么在接下的时间窗口(DegradeRule 中的 timeWindow,以 s 为单位)之内,对这个方法的调用都会自动地返回(抛出 DegradeException)。注意 Sentinel 默认统计的 RT 上限是 4900 ms,超出此阈值的都会算作 4900 ms,若需要变更此上限可以通过启动配置项 -Dcsp.sentinel.statistic.max.rt=xxx 来配置。
  • 异常比例 (DEGRADE_GRADE_EXCEPTION_RATIO):当资源的每秒异常总数占通过量的比值超过阈值(DegradeRule 中的 count)之后,资源进入降级状态,即在接下的时间窗口(DegradeRule 中的 timeWindow,以 s 为单位)之内,对这个方法的调用都会自动地返回。异常比率的阈值范围是 [0.0, 1.0],代表 0% - 100%。
  • 异常数 (DEGRADE_GRADE_EXCEPTION_COUNT):当资源近 1 分钟的异常数目超过阈值之后会进行熔断。

【RT】
在这里插入图片描述
【异常比例】

在这里插入图片描述
【异常数】

在这里插入图片描述

6、热点规则

可查询官网说明:https://sentinelguard.io/zh-cn/docs/parameter-flow-control.html
在这里插入图片描述

本文地址:https://blog.csdn.net/li521wang/article/details/107337519

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网