Sentinel微服务保护

Sentinel

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

特点

丰富的应用场景

阿里巴巴 10 年双十一积累的丰富流量场景,包括秒杀、双十一零点持续洪峰、热点商品探测、预热、消息队列削峰填谷等多样化的场景
*

易于使用,快速接入

简单易用,开源生态广泛,针对 Dubbo、Spring Cloud、gRPC、Zuul、Reactor、Quarkus 等框架只需要引入适配模块即可快速接入
*

多样化的流量控制

资源粒度、调用关系、指标类型、控制效果等多维度的流量控制
*

可视化的监控和规则管理

简单易用的 Sentinel 控制台

雪崩

所谓的雪崩指的是:微服务之间相互调用,调用链中某个微服务出现问题了,导致整个服务链的所有服务也跟着出问题,从而造成所有服务都不可用

解决方案

1.超时处理:是一种临时方针,即设置定时器,请求超过规定的时间就返回错误信息,不会无休止等待

缺点:在超时时间内,还未返回错误信息内,服务未处理完,请求激增,一样会导致后面的请求阻塞​

2.线程隔离:也叫舱壁模式,即限定每个业务能使用的线程数,避免耗尽整个tomcat的资源

缺点:会造成一定资源的浪费。明明服务已经不可用了,还占用固定数量的线程

3.熔断降级:

  • 熔断: 由"断路器"统计业务执行的异常比例,如果超出"阈值"则会熔断/暂停该业务,拦截访问该业务的一切请求,后续搞好了再开启。从而做到在流量过大时(或下游服务出现问题时),可以自动断开与下游服务的交互,并可以通过自我诊断下游系统的错误是否已经修正,或上游流量是否减少至正常水平来恢复自我恢复。熔断更像是自动化补救手段,可能发生在服务无法支撑大量请求或服务发生其他故障时,对请求进行限制处理,同时还可尝试性的进行恢复
  • 降级: 丢车保帅。针对非核心业务功能,核心业务超出预估峰值需要进行限流;所谓降级指的就是在预计流量峰值前提下,整体资源快不够了,忍痛将某些非核心服务先关掉,待渡过难关,再开启回来

4.限流: 也叫流量控制。指的是限制业务访问的QPS,避免服务因流量的突增而故障。是防御保护手段,从流量源头开始控制流量规避问题

  • 限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩。是一种预防措施
  • 超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩。是一种补救措施

流控模式

在添加限流时,点击高级选项,可以选择三种流控模式:

  • 直接:统计当前资源的请求,触发阈值时对当前资源直接限流,也是默认的模式。
  • 关联:统计与当前资源相关的另一个资源,触发阈值时,对当前资源限流。
  • 链路:统计从指定链路访问到本资源的请求,触发阈值时,对指定链路限流。
1.关联模式

关联模式使用场景:比如用户支付时需要修改订单状态,同时用户要查询订单。查询和修改操作会争抢数据库锁,产生竞争。业务需求是优先支付和更新订单的业务,因此当修改订单业务触发阈值时,需要对查询订单业务限流。

2.链路模式

只针对从指定链路访问到本资源的请求做统计,判断是否超过阈值。

场景:有查询订单和创建订单业务,两者都需要查询商品。针对从查询订单进入到查询商品的请求统计,并设置限流。(使其不影响创建订单时的性能)

  • 直接模式:对当前资源限流
  • 关联模式:高优先级资源触发阈值,对低优先级资源限流
  • 链路模式:阈值统计时,只统计从指定资源进入当前资源的请求,是对请求来源的限流
相关推荐
Devlive 开源社区2 小时前
AuthX 正式更名 GrantForge:我们重新做了一遍权限管理系统
大数据·人工智能·架构
微三云生态系统架构师-彭丹3 小时前
抖店OPC智能选品与铺货架构:多店差异化与频率风控设计
架构
集智飞行4 小时前
无人机集群通信架构剖析,以及对未来发展的几点判断
架构·无人机
想要打 Acm 的小周同学呀4 小时前
无需自己设计Agent架构的业务系统,依赖第三方Agent,基于SKILL和MCP服务实现企业级内部提效工具开发
架构·agent
Dawson Zhu6 小时前
《Agentic Design Patterns》第 4 章导读:反思(Reflection)
人工智能·语言模型·架构·aigc·agi
码云之上7 小时前
把网页变成可引用知识——Chatbot 联网工具
人工智能·架构·agent
独孤九剑打醒他7 小时前
【原创开源】【概念设计】源 - 栅 - 漏 - 栅 - 源 横向双栅 MOS,低压交流多值逻辑芯片探索
前端·其他·架构·开源·硬件工程
十六宿舍10 小时前
【软件设计模式-第一课:基础知识了解】
设计模式·架构·面向对象·软件架构
Layer10 小时前
即时通讯系统的关键设计
后端·架构
I Am a robert girl11 小时前
从科学代码库到智能体训练场:ScienceIDE 的架构拆解与工程启示
架构·强化学习·代码仓库·科学计算·监督微调·智能体训练·可编程环境