当前位置:首页 > 科技  > 软件

Sentinel原理介绍,你学会了吗?

来源: 责编: 时间:2023-10-06 19:16:36 456观看
导读今日目标理解Sentinel原理之前已经介绍了雪崩产生原因和解决方式,那么这些解决方式如何落地?现在支持SpringCloud微服务保护技术一般都是:Hystrix和Sentinle,早期比较流行的是Hystrix框架,但目前国内实用最广泛的还是阿

今日目标

  • 理解Sentinel原理

之前已经介绍了雪崩产生原因和解决方式,那么这些解决方式如何落地?现在支持SpringCloud微服务保护技术一般都是:Hystrix和Sentinle,早期比较流行的是Hystrix框架,但目前国内实用最广泛的还是阿里巴巴的Sentinel框架,我们对这两种常见技术进行对比:tl128资讯网——每日最新资讯28at.com


tl128资讯网——每日最新资讯28at.com

Sentineltl128资讯网——每日最新资讯28at.com

Hystrixtl128资讯网——每日最新资讯28at.com

隔离策略tl128资讯网——每日最新资讯28at.com

信号量隔离
tl128资讯网——每日最新资讯28at.com

线程池隔离/信号量隔离
tl128资讯网——每日最新资讯28at.com

熔断降级策略tl128资讯网——每日最新资讯28at.com

基于慢调用比例或异常比例
tl128资讯网——每日最新资讯28at.com

基于失败比率
tl128资讯网——每日最新资讯28at.com

实时指标实现
tl128资讯网——每日最新资讯28at.com

滑动窗口
tl128资讯网——每日最新资讯28at.com

滑动窗口(基于 RxJava)
tl128资讯网——每日最新资讯28at.com

规则配置
tl128资讯网——每日最新资讯28at.com

支持多种数据源
tl128资讯网——每日最新资讯28at.com

支持多种数据源
tl128资讯网——每日最新资讯28at.com

扩展性
tl128资讯网——每日最新资讯28at.com

多个扩展点
tl128资讯网——每日最新资讯28at.com

插件的形式
tl128资讯网——每日最新资讯28at.com

基于注解的支持
tl128资讯网——每日最新资讯28at.com

支持
tl128资讯网——每日最新资讯28at.com

支持
tl128资讯网——每日最新资讯28at.com

限流tl128资讯网——每日最新资讯28at.com

基于 QPS,支持基于调用关系的限流
tl128资讯网——每日最新资讯28at.com

有限的支持
tl128资讯网——每日最新资讯28at.com

流量整形tl128资讯网——每日最新资讯28at.com

支持慢启动、匀速排队模式
tl128资讯网——每日最新资讯28at.com

不支持
tl128资讯网——每日最新资讯28at.com

系统自适应保护
tl128资讯网——每日最新资讯28at.com

支持
tl128资讯网——每日最新资讯28at.com

不支持
tl128资讯网——每日最新资讯28at.com

控制台tl128资讯网——每日最新资讯28at.com

开箱即用,可配置规则、查看秒级监控、机器发现等
tl128资讯网——每日最新资讯28at.com

不完善
tl128资讯网——每日最新资讯28at.com

常见框架的适配
tl128资讯网——每日最新资讯28at.com

Servlet、Spring Cloud、Dubbo、gRPC  等
tl128资讯网——每日最新资讯28at.com

Servlet、Spring Cloud Netflix
tl128资讯网——每日最新资讯28at.com

在种种差异中,我们重点关注加粗标注的部分:tl128资讯网——每日最新资讯28at.com

隔离策略:tl128资讯网——每日最新资讯28at.com

  • 线程池隔离:同上述线程隔离案例,给不同业务分配不同线程池,这种方案可以杜绝雪崩问题;但是因为tomcat之外的线程池开销也使得系统开销增加,频繁的上下文切换将给系统性能带来额外的损失。
  • 信号量隔离:不会给业务单独创建线程池(统一使用tomcat一个容器),而是限制每个业务能使用的线程数量。统计当前业务使用的线程数,当达到指定数量后(类似计数器)触发隔离。相较于线程池隔离性差一点。

熔断降级策略tl128资讯网——每日最新资讯28at.com

  • 慢调用比例/异常比例/异常数:统计调用中慢性能的比例、异常的比例、或异常数量均可触发熔断降级。
  • 失败比例:只能根据异常请求比例触发熔断降级策略。

限流:tl128资讯网——每日最新资讯28at.com

  • 基于QPS/调用链路:基于调用的QPS、调用链路都可以做到限流。
  • 有限的控制:没有专门的限流方案,基于线程池隔离做的,线程池有多少线程数就限制到多少。

流量整形:tl128资讯网——每日最新资讯28at.com

  • 慢调用/排队等待:避免突发流量的暴增而引起系统崩溃,而Hystrix则没有解决方案

控制台:tl128资讯网——每日最新资讯28at.com

  • Sentinel有较为完善的控制台,界面化操作实时生效,而Hystrix只能查看一下服务状态,不可动态调整。

对比可以发现Hystrix的重点在于隔离、熔断为主的容错机制,而Sentinel的侧重点在于:多样化的流量控制、熔断降级、系统保护、实时监控和控制台。同时基于HyStrix停止维护,加上Sentinel在阿里巴巴经过双十一的高峰流量验证,目前国内主流保护还是选择了后者。因为后续的章节中我们也将借助于Sentinel为大家实践微服务保护相关的知识点。tl128资讯网——每日最新资讯28at.com

1. Sentinel基本概念

资源

资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。在接下来的文档中,我们都会用资源来描述代码块。tl128资讯网——每日最新资讯28at.com

只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。tl128资讯网——每日最新资讯28at.com

规则tl128资讯网——每日最新资讯28at.com

围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。tl128资讯网——每日最新资讯28at.com

2.Sentinel 功能和设计理念

2.1 流量控制

流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。然而,从系统稳定性角度考虑,在处理请求的速度上,也有非常多的讲究。任意时间到来的请求往往是随机不可控的,而系统的处理能力是有限的。我们需要根据系统的处理能力对流量进行控制。Sentinel 作为一个调配器,可以根据需要把随机的请求调整成合适的形状,如下图所示:tl128资讯网——每日最新资讯28at.com

图片图片tl128资讯网——每日最新资讯28at.com

流量控制有以下几个角度:tl128资讯网——每日最新资讯28at.com

  • 资源的调用关系,例如资源的调用链路,资源和资源之间的关系;
  • 运行指标,例如 QPS、线程池、系统负载等;
  • 控制的效果,例如直接限流、冷启动、排队等。

Sentinel 的设计理念是让您自由选择控制的角度,并进行灵活组合,从而达到想要的效果。tl128资讯网——每日最新资讯28at.com

2.2 熔断降级

什么是熔断降级tl128资讯网——每日最新资讯28at.com

除了流量控制以外,降低调用链路中的不稳定资源也是 Sentinel 的使命之一。由于调用关系的复杂性,如果调用链路中的某个资源出现了不稳定,最终会导致请求发生堆积。这个问题和 Hystrix 里面描述的问题是一样的。tl128资讯网——每日最新资讯28at.com

图片图片tl128资讯网——每日最新资讯28at.com

Sentinel 和 Hystrix 的原则是一致的: 当调用链路中某个资源出现不稳定,例如,表现为 timeout,异常比例升高的时候,则对这个资源的调用进行限制,并让请求快速失败,避免影响到其它的资源,最终产生雪崩的效果。tl128资讯网——每日最新资讯28at.com

熔断降级设计理念

在限制的手段上,Sentinel 和 Hystrix 采取了完全不一样的方法。tl128资讯网——每日最新资讯28at.com

Hystrix 通过线程池的方式,来对依赖(在我们的概念中对应资源)进行了隔离。这样做的好处是资源和资源之间做到了最彻底的隔离。缺点是除了增加了线程切换的成本,还需要预先给各个资源做线程池大小的分配。tl128资讯网——每日最新资讯28at.com

Sentinel 对这个问题采取了两种手段:tl128资讯网——每日最新资讯28at.com

1.通过并发线程数进行限制tl128资讯网——每日最新资讯28at.com

和资源池隔离的方法不同,Sentinel 通过限制资源并发线程的数量,来减少不稳定资源对其它资源的影响。这样不但没有线程切换的损耗,也不需要您预先分配线程池的大小。当某个资源出现不稳定的情况下,例如响应时间变长,对资源的直接影响就是会造成线程数的逐步堆积。当线程数在特定资源上堆积到一定的数量之后,对该资源的新请求就会被拒绝。堆积的线程完成任务后才开始继续接收请求。tl128资讯网——每日最新资讯28at.com

2.通过响应时间对资源进行降级tl128资讯网——每日最新资讯28at.com

除了对并发线程数进行控制以外,Sentinel 还可以通过响应时间来快速降级不稳定的资源。当依赖的资源出现响应时间过长后,所有对该资tl128资讯网——每日最新资讯28at.com

系统负载保护

Sentinel 同时提供系统维度的自适应保护能力。防止雪崩,是系统防护中重要的一环。当系统负载较高的时候,如果还持续让请求进入,可能会导致系统崩溃,无法响应。在集群环境下,网络负载均衡会把本应这台机器承载的流量转发到其它的机器上去。如果这个时候其它的机器也处在一个边缘状态的时候,这个增加的流量就会导致这台机器也崩溃,最后导致整个集群不可用。tl128资讯网——每日最新资讯28at.com

针对这个情况,Sentinel 提供了对应的保护机制,让系统的入口流量和系统的负载达到一个平衡,保证系统在能力范围之内处理最多的请求。tl128资讯网——每日最新资讯28at.com

2.3. Sentinel 是如何工作的

Sentinel 的主要工作机制如下:tl128资讯网——每日最新资讯28at.com

  • 对主流框架提供适配或者显示的 API,来定义需要保护的资源,并提供设施对资源进行实时统计和调用链路分析。
  • 根据预设的规则,结合对资源的实时统计信息,对流量进行控制。同时,Sentinel 提供开放的接口,方便您定义及改变规则。
  • Sentinel 提供实时的监控系统,方便您快速了解目前系统的状态。

tl128资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-12092-0.htmlSentinel原理介绍,你学会了吗?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Python 3.12 版本正式推出:f-string 解析改进,整体性能提升 5%

下一篇: Java中定时任务调度不准确或执行异常,导致计划任务失败

标签:
  • 热门焦点
  • K6:面向开发人员的现代负载测试工具

    K6 是一个开源负载测试工具,可以轻松编写、运行和分析性能测试。它建立在 Go 和 JavaScript 之上,它被设计为功能强大、可扩展且易于使用。k6 可用于测试各种应用程序,包括 Web
  • Golang 中的 io 包详解:组合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是对Reader和Writer接口的组合,
  • K8S | Service服务发现

    一、背景在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关、注册中心、配置中心等相关服务,可以被集群外部访问;图片对于测试「Tes」环境或者
  • 不容错过的MSBuild技巧,必备用法详解和实践指南

    一、MSBuild简介MSBuild是一种基于XML的构建引擎,用于在.NET Framework和.NET Core应用程序中自动化构建过程。它是Visual Studio的构建引擎,可在命令行或其他构建工具中使用
  • 学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 梁柱接棒两年,腾讯音乐闯出新路子

    文丨田静 出品丨牛刀财经(niudaocaijing)7月5日,企鹅FM发布官方公告称由于业务调整,将于9月6日正式停止运营,这意味着腾讯音乐长音频业务走向消亡。腾讯在长音频领域还在摸索。为
  • 中国家电海外掘金正当时|出海专题

    作者|吴南南编辑|胡展嘉运营|陈佳慧出品|零态LT(ID:LingTai_LT)2023年,出海市场战况空前,中国创业者在海外纷纷摩拳擦掌,以期能够把中国的商业模式、创业理念、战略打法输出海外,他们依
  • 微博大门常打开,迎接海外画师漂洋东渡

    作者:互联网那些事“起猛了,我能看得懂日语了”。“为什么日本人说话我能听懂?”“中文不像中文,日语不像日语,但是我竟然看懂了”…&hell
  • 2299元起!iQOO Pad明晚首销:性能最强天玑平板

    5月23日,iQOO如期举行了新品发布会,除了首发安卓最强旗舰处理器的iQOO Neo8系列新机外,还在发布会上推出了旗下首款平板电脑——iQOO Pad,其最大的卖点
Top