首页 > 其他分享 >Sentinel诞生的背后故事,你知道多少?

Sentinel诞生的背后故事,你知道多少?

时间:2025-01-08 21:12:18浏览次数:1  
标签:调用 服务 隔离 故事 诞生 线程 Sentinel 超时

本文已收录在Github关注我,紧跟本系列专栏文章,咱们下篇再续!

作者简介:魔都架构师,多家大厂后端一线研发经验,在分布式系统设计、数据平台架构和AI应用开发等领域都有丰富实践经验。

各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。

负责:

  • 中央/分销预订系统性能优化
  • 活动&券等营销中台建设
  • 交易平台及数据中台等架构和开发设计
  • 车联网核心平台-物联网连接平台、大数据平台架构设计及优化
  • LLM Agent应用开发
  • 区块链应用开发
  • 大数据开发挖掘经验
  • 推荐系统项目

目前主攻市级软件项目设计、构建服务全社会的应用系统。

参考:

1 Sentinel是啥?

随微服务流行,服务和服务之间稳定性越来越重要。Sentinel是面向分布式服务架构的轻量级流量控制框架,以流量为切入点,从流控、熔断降级、系统负载保护等多维保障服务稳定性。

曾经:

如今:

可完成替代 Netflix-hystrix。

2 发展

  • 2012年,Sentinel诞生,主要功能为入口流量控制
  • 2013-2017年,Sentinel在阿里内部迅速发展,成为基础技术模块,覆盖所有核心场景,积累了大量流量归整场景及生产实践
  • 2018年,Sentinel 开源

3 雪崩效应

系统依赖的某个服务发生延迟或故障,数秒内导致所有应用资源(线程,队列等)被耗尽,造成雪崩效应。

cascading failure(级联失效 / 级联故障):

4 容错方案

4.1 超时模式

最常见的容错模式。

常见的有设置网络连接超时时间,一次RPC的响应超时时间。

主要解决当依赖服务出现建立网络连接或响应延迟,不用无限等待的问题,调用方可根据预置超时时间中断调用,及时释放关键资源,如Web容器的连接数,数据库连接数等,避免整个系统资源耗尽,而出现拒绝对外提供服务。

思想

只要释放够快,我就没那么容易挂~

4.2 限流(Rate Limiting/Load Shedder)

常用于下游服务容量有限,但又怕出现突发流量猛增(如爬虫,大促)而导致下游服务因压力过大而拒绝服务的场景。常见的限流模式有控制并发和控制速率

  • 一个是限制并发的数量
  • 一个是限制并发访问的速率。

思想

我就一碗饭量,给多了我也不吃!

4.3 舱壁隔离(Bulkhead Isolation)

造船行业使用此类模式,利用舱壁将不同船舱隔离,这样若一个船舱破了进水,只损失一个船舱,其它船舱可不受影响。借鉴造船行业经验,这种模式也在软件行业使用。

线程隔离(Thread Isolation)就是这种模式的常见场景。如系统A调用ServiceB、C、D三个远程服务,且部署A的容器一共有120个工作线程,采用线程隔离机制,可以给对B、C、D的调用各分配40个线程。当B慢了,给B分配的40个线程因慢而阻塞并最终耗尽,线程隔离可保证给C、D分配的80个线程不受影响。若无这种机制,当B慢时,120个工作线程会很快全部被对B的调用吃光,整个系统会全部慢下来,甚至系统停止响应。

实践经常遇到,如某接口由于数据库慢查询,外部RPC调用超时导致整个系统的线程数过高,连接数耗尽。可用舱壁隔离模式,为这种依赖服务调用维护一个小的线程池,当一个依赖服务由于响应慢导致线程池任务满的时候,不影响其他依赖服务的调用,缺点:增加线程数。

思想

别把鸡蛋放在一个篮子!

4.4 断路器模式

断路器三态转换:

思想

监控 + 开关

5 Sentinel VS hystrix

特性 Sentinel Hystrix
隔离策略 信号量隔离 线程池隔离/信号量隔离
熔断降级策略 基于响应时间或失败比率 基于失败比率
实时指标实现 滑动窗口 滑动窗口(基于 RxJava)
规则配置 支持多种数据源 支持多种数据源
扩展性 多个扩展点 插件的形式
基于注解的支持 支持 支持
限流 基于 QPS, 支持基于调用关系的限流 有限的支持
流量整形 支持慢启动、匀速器模式 不支持
系统负载保护 支持 不支持
控制台 开箱即用, 可配置规则、查看秒级监控、机器发现等 不完善
常见框架的适配 Servlet、Spring Cloud、Dubbo、gRPC 等 Servlet、Spring Cloud、Netflix

本文由博客一文多发平台 OpenWrite 发布!

标签:调用,服务,隔离,故事,诞生,线程,Sentinel,超时
From: https://www.cnblogs.com/JavaEdge/p/18660583

相关文章

  • 基于 GEE Sentinel-1 数据集提取水体
    目录1水体提取原理2完整代码3运行结果1水体提取原理水体提取是地理信息和遥感技术的关键应用之一,对于多个领域都具有重要的应用价值。它有助于更好地管理水资源,保护环境,减少灾害风险,促进可持续发展,以及确保饮用水供应的安全。水体提取技术的不断发展和改进将进一步......
  • 【微服务】5、服务保护 Sentinel
    Sentinel学习内容概述Sentinel简介与结构Sentinel是SpringCloudAlibaba的组件,由阿里巴巴开源,用于服务流量控制和保护。其内部核心库(客户端)包含限流、熔断等功能,微服务引入该库后只需配置规则。规则配置方式有Java编码(较复杂)和使用控制台(较简便)两种。Sentinel控制台安......
  • 「BugKu CTF」1 和 0 的故事
    题意下发一个大小为\(25\times25\)的01矩阵。分析&代码根据\(25\times25\)的大小,联想到平时的微信付款码就这像素,很可能是一个二维码!但是二维码的四个角一般都是“半空心正方形”(可以打开微信付款码,看看形状),我们将这些角补全,得到二维码的01表示为111111100111......
  • P4229 某位歌姬的故事 题解
    题目描述\(T\)组数据,求有多少个长为\(n\)的数组\(h\)满足\(1\leh_i\lea\)和以下\(q\)条限制:\[\max_{l_i\lej\leh_i}h_j=w_i\]对\(998244353\)取模。数据范围\(1\leT\le20\)。\(1\len,a\le9\cdot10^8,1\leq\le500\)。\(1\lel_i\ler_i\len,......
  • 小辰讲故事哄娃神器
    点击上方蓝字睿共享关注我前言我给大家安利一款哄娃软件,无论是车机还是安卓手机都能轻松驾驭。这款软件简直就是孩子们的欢乐宝库,首页上五大板块一目了然:精彩故事、知识小站、儿歌乐园、英语启蒙,还有家长加油站。家里有小朋友的家长们,这款软件绝对值得一试,保证大人小孩都能找到......
  • 对Sentinel的链路分析与客户端服务端交互理解
    Sentinel介绍略https://sentinelguard.io/zh-cn/https://github.com/alibaba/Sentinelhttps://sentinelguard.io/zh-cn/docs/quick-start.htmlhttps://github.com/alibaba/Sentinel/wiki/Sentinel-核心类解析Sentinel定义的术语Entry:表示对某个资源的访问请求,通过SphU.e......
  • 痞子衡嵌入式:Farewell, 我的写博故事2024
    --题图:苏州周庄古镇双桥2024年的最后一天,照旧写个年终总结。今年工作上稳步发挥,但是在生活上收获了一个新的爱好,大家可能知道,痞子衡比较爱运动,一直有在打篮球羽毛球桌球。有感于公司乒乓球文化浓厚,也为了挑战一下自己,所以今年从零开始发展了乒乓球爱好,人到中年,想学好学精一个......
  • Sentinel之动态规则扩展
    Sentinel中的动态规则1,Sentinel提供两种方式修改规则:通过API直接修改(loadRules)FlowRuleManager.loadRules(List<FlowRule>rules);//修改流控规则DegradeRuleManager.loadRules(List<DegradeRule>rules);//修政降级规则通过Datasource适配不同数据源修改2,DataS......
  • 面试官:Sentinel是如何实现限流的?
    限流是一种通过控制系统对外提供的资源、服务或接口的访问数量或速率,以保护系统免受过载的一种策略。它的目的是确保系统能够在承受范围内提供稳定和可靠的服务,避免因过多的请求而导致系统崩溃、资源耗尽或响应延迟过高的情况发生。在Sentinel中,实现限流的方法有以下两......
  • 基于Sentinel的服务保护方案的三种方式(请求限流、线程隔离、服务熔断)超详细讲解
    目录1、三种方式介绍1.1请求限流1.2线程隔离方案1.3服务熔断2、基于sentinel实现2.1启动sentinel2.2基于springboot整合sentinel2.2.1请求限流2.2.2请求隔离2.2.2.1 OpenFeign整合Sentinel2.2.3服务熔断2.2.3.1编写降级代码2.2.3.2服务熔断1、三种方......