sentinel

faith team

1.1 为什么要学习sentinel

假设你的微服务中服务A调用服务B 服务B出现了故障 请求一直挂着导致堵塞 那么就会消耗一定的资源 假设还有服务C 服务D也需要请求调用服务B的时候那么会导致服务A C D这几个服务也卡死 tomcat收到的请求数量有限导致tomcat也会堵死
这个就是应用场景中经常说的雪崩问题,简洁的说就是:微服务之间的调用,因为调用链中的一个服务故障,导致了整个链路都无法访问的情况。
那么解决雪崩又有那些的解决方案呢???

  • 超时处理:设置一个超时时间 一个请求超过一定的时间内没有响应就返回错误信息,这样就不会无休止的等待了。
  • 舱壁模式:限定每个业务在tomcat中的能使用的线程数,避免耗尽整个tomcat的资源,因此也就线程隔离,这样的好处就是比如业务Atomcat限定只有10个线程 那么就算导致雪崩问题也是这个业务没了 其他业务一样可以继续运行
  • 熔断降级:由断路器统计业务执行的异常比例 比如说有3个服务A 去调用1个服务B 返回了两个都是异常的,异常率应该是66.6%,我给限定一个异常限定值50%,那么就会熔断这个服务,拦截访问这个服务的一切的请求 在1s内就能返回错误信息了避免了资源的浪费
  • 流量控制:限制业务访问的Qps,避免服务因为流量的突增而故障,这个解决方案只能说预防高并发来导致的服务的坏死,他好比就是限定了这个服务只能同时进来多少个请求

如何避免因为瞬间高并发流量导致服务故障?
流量控制

如何避免因服务故障引起的雪崩问题?
1.超时处理
2.熔断降级
3.舱壁模式

博主忙着学数据结构了 溜了

  • Title: sentinel
  • Author: faith team
  • Created at: 2023-08-01 11:21:05
  • Updated at: 2025-11-29 09:01:08
  • Link: https://redefine.ohevan.com/2023/08/01/20230811sentinel/
  • License: This work is licensed under CC BY-NC-SA 4.0.
 Comments