一 .Sentinel介绍
1、定义:
面向云原生微服务的高可用流控防护组件:以流量为切入点,从流量控制、熔断降级、系统自适应保护
等多个维度来帮助用户保障微服务的稳定性。
2、资源:
- 可以是应用程序中的任何内容,如URL、服务名
- 只要通过Sentinel API定义的代码,就是资源
3、规则:
围绕资源的实时状态设定的规则
- 流量控制规则
- 熔断降级规则
- 系统保护规则
所有规则可以动态实时调整
二 目的和手段:
1、目的
用于对分布式系统中大量微服务进行有效控制管理
2、手段
- 服务熔断
- 服务降级
- 流量控制
- 系统负载保护
- 负载均衡
三 服务治理思路和算法
1、熔断
- 定义
在调用服务时,在一些非关键路径服务发生服务质量问题时,尽可能屏蔽问题影响 - 策略
- 慢调用比例
- 异常比例
- 异常数
2、服务降级
- 定义
服务整体负载超出预设上限阈值或预计流量将超出预设上限时,保证重要或基础的服务能正常运行。 - 策略
- 服务层降级
- 拒绝部分请求
- 关闭部分服务
- 数据层降级
- 写MQ,读缓存,异步刷盘
- 柔行可用策略
- 自动打开
- 服务层降级
3、流量控制
- 作用
监控应用流量的OPS或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。 - 手段
-
并发线程数控制
- 并发数控制通常在调用端进行配置
- QPS流量控制
- 基于调用关系的流量控制
- 根据调用方限流
- 链路限流:根据调用链路入口限流
- 关联流量控制:具有关系的资源流量控制
-
并发线程数控制
- 类型
- 单机流控
- 集群流控
- 网关流控
- 系统自适应限流:**在系统不被拖垮的情况下,提高系统的吞吐率,而不是加载这个阈值 **
网友评论