SpringCloudAlibaba分布式流量控制组件Sentinel实战与源码分析(上)

Sentinel是阿里巴巴的高可用防护组件,专注于流量控制、熔断降级,帮助保障微服务稳定性。本文介绍了Sentinel的基本概念、工作原理、实战应用和控制台功能,包括资源定义、流量控制、熔断降级策略,以及Sentinel控制台的部署和客户端接入。

🚀 优质资源分享 🚀

学习路线指引(点击解锁) 知识定位 人群定位
🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

概述

定义

Sentinel官网地址 https://sentinelguard.io/zh-cn/index.html 最新版本v1.8.4

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

Sentinel GitHub源码地址 https://www.github.com/alibaba/Sentinel

Sentinel是面向分布式服务架构的高可用防护组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助用户保障微服务的稳定性。

背景

分布式系统遇到常见棘手问题就是如何保障系统高可用性的场景,严重则会导致整个系统服务雪崩。

image-20220605121156566

在微服务架构中,出现服务交叉调用是很常见的情况,如电商秒杀商品、商品详情、购物车等都会访问库存服务。如果其中下单服务不可用,就会出现线程池里的所有线程都因等待而被阻塞,进而导致整个系统的服务雪崩。服务雪崩效应是因服务提供者的不可用导致服务调用者的不可用,并将不可用逐步放大的过程。特别如果被一些非核心业务如积分服务而导致整个服务不可用那就非常不值得,假如积分服务有一些容错处理机制,到时在事后加一些补偿的机制加回来也是可以接收的。

image-20220605121619870

常见容错机制

  • 超时机制:一旦出现超时就释放资源,释放资源的速度相对还是较快的,一定程度上可以抑制资源耗尽的问题。
  • 服务限流:如QPS超时一定值如1000直接拒绝。
  • 隔离:隔离可以根据线程数量来限制,也可以根据信号来限制。线程隔离比如可以为每一服务限制可访问的线程数量。信号隔离可以限制并发访问,和限流有点类似。
  • 服务熔断:远程服务不可用或网络抖动则暂时关闭服务。其作用如保险丝。
  • 服务降级:当出现服务熔断后,服务将不再被调用,可以准备一个本地fallback回调,返回一些本地默认处理,作为一种补偿的机制。

特性

  • 丰富的应用场景:阿里巴巴 10 年双十一积累的丰富流量场景,包括秒杀、双十一零点持续洪峰、热点商品探测、预热、消息队列削峰填谷等多样化的场景。
  • 易于使用,快速接入:简单易用,开源生态广泛,针对 Dubbo、Spring Cloud、gRPC、Zuul、Reactor、Quarkus 等框架只需要引入适配模块即可快速接入。
  • 多样化的流量控制:资源粒度、调用关系、指标类型、控制效果等多维度的流量控制和降级能力。
  • 可视化的监控和规则管理:简单易用的 Sentinel 控制台,秒级的实时监控和动态规则管理。

image-20220605124452211

基本概念

  • 资源
    • 资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。在接下来的文档中,我们都会用资源来描述代码块。
    • 只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。
  • 规则
    • 围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。

功能和设计理念

  • <
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值