加入收藏 | 设为首页 | 会员中心 | 我要投稿 宣城站长网 (https://www.0563zz.cn/)- 数据湖、行业智能、边缘计算、开发、备份!
当前位置: 首页 > 站长资讯 > 动态 > 正文

教你拆穿所谓“万金油”

发布时间:2021-02-05 15:59:39 所属栏目:动态 来源:互联网
导读:如今,很多组织一直在寻求减少IT基础设施管理时间和成本的方法,以便他们可以专注于开发更具价值的业务,而不必花费更多的时间更新用户桌面或管理日益老化的服务器。那么,云计算技术能够实现外包承诺并提供最终实现解决方案吗? 这个问题很有诱惑力,因为云

如今,很多组织一直在寻求减少IT基础设施管理时间和成本的方法,以便他们可以专注于开发更具价值的业务,而不必花费更多的时间更新用户桌面或管理日益老化的服务器。那么,云计算技术能够实现外包承诺并提供最终实现解决方案吗?

这个问题很有诱惑力,因为云计算技术可以使组织消除部署和运营内部基础设施的大部分成本,并以“按需付费”的方式购买IT服务。通过向在家远程工作的员工提供服务,无疑使许多人度过冠状病毒疫情的危机。然而,IT团队的成功运营不仅仅是在云端使用应用程序。虽然云计算可能是解决方案的一部分,但对于大多数组织来说并不是全部。
 

我们把系统处理请求的过程想象为一个水管,到来的请求是往这个水管灌水,当系统处理顺畅的时候,请求不需要排队,直接从水管中穿过,这个请求的RT是最短的;反之,当请求堆积的时候,那么处理请求的时间则会变为:排队时间 + 最短处理时间。

推论一: 如果我们能够保证水管里的水量,能够让水顺畅的流动,则不会增加排队的请求;也就是说,这个时候的系统负载不会进一步恶化。

推论二: 当保持入口的流量是水管出来的流量的最大的值的时候,可以最大利用水管的处理能力。

5.3、 实时监控和控制面板

Sentinel 提供一个轻量级的开源控制台,它提供机器发现以及健康情况管理、监控(单机和集群),规则管理和推送的功能。
 

匀速排队模式原理图

  • 基于调用关系的流量控制:
  • 根据调用方限流。
  • 根据调用链路入口限流:链路限流。

根据具有关系的资源流量限流:关联流量限流。

5.2、系统自适应限流

Sentinel 系统自适应限流从整体维度对应用入口流量进行控制,借助 TCP BBR 思想,结合应用的 Load、CPU 使用率、总体平均 RT、入口 QPS 和并发线程数等几个维度的监控指标,通过自适应的流控策略,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能跑在最大吞吐量的同时保证系统整体的稳定性。
 

四、对比

4.1、隔离设计上对比

Hystrix

Hystrix 提供两种隔离策略,线程池隔离和信号量隔离。

Hystrix 中最推荐的也是最常用的是线程池隔离。线程池隔离的好处是隔离度很高,不会影响其他资源,但是线程本身也有自己的问题,线程上下文切换时比较耗 CPU 资源的,如果对低延时要求比较高,影响还是挺大的,而且创建线程是需要分配内存的,创建的线程越多,需要分配的内存也会更多。而且如果对每个资源都创建一个线程池,那线程切换会带来更大的损耗。

而 Hystrix 的信号量隔离,可以对某个资源调用的并发数进行限制,轻量级的,不用显式创建线程池,但缺点是不能对慢调用进行自动降级,只能等客户端那边超时,还是有可能出现级联阻塞的情形。

Sentinel

Sentinel 可以通过并发线程数模式的流量控制来提供信号量隔离的功能,而且它还具备响应时间的熔断降级模式,防止过多的慢调用占满并发数而影响整个系统。

4.2、熔断降级的对比

Sentinel 和 Hystrix 都是基于熔断器模式。都支持基于异常比率来进行熔断,但 Sentinel 更强大,可以基于响应时间、异常比率和异常数来进行熔断降级。

4.3、实时统计的对比

Sentinel 和 Hystrix 都是基于滑动窗口进行实时统计,但 Hystrix 是基于 RxJava 的事件驱动模型,在服务调用成功/失败/超时的时候发布响应的事件,通过一系列的变换和聚合最终得到实时的指标统计数据流,可以被熔断器或 Dashboard 消费。而 Sentinel 是基于 LeapArray 的滑动窗口。

五、Sentinel 的突出特性

除了上面提到的 三大对比外,Sentinel 还有一些 Hystrix 不具备的功能。

5.1、流量控制

流量控制: 其原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。

Sentinel 可以基于QPS/并发数进行流量控制,也可以基于调用关系进行流量控制。

基于 QPS 进行流量控制有以下几种方式:

  • 直接拒绝: 当QPS 超过一定阈值时,直接拒绝。适用于对系统处理能力确切已知的情况。
  • 慢启动预热: 当系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过"冷启动",让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮。

(编辑:宣城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读