云计算设计模式(二十三)——Throttling节流模式

简介: 云计算设计模式(二十三)——Throttling节流模式控制由应用程序使用,一个单独的租户或整个服务的一个实例的资源的消耗。这种模式可以允许系统继续运行并满足服务水平协议,即使当增加需求的资源放置一个极端载荷。

云计算设计模式(二十三)——Throttling节流模式


控制由应用程序使用一个单独的租户或整个服务的一个实例的资源的消耗。这种模式可以允许系统继续运行满足服务水平协议,即使当增加需求的资源放置一个极端载荷

背景和问题


在云应用负载通常上变化的基础上的活动用户的数量或他们正在执行的活动类型的时间例如多个用户可能会在工作时间被激活否则系统可能被要求在每月结束时执行计算昂贵的分析也有可能是突然和意外的突发活动如果系统的处理要求超过了可用的资源的能力,将遭受性能不佳,甚至会失败。该系统可能必须满足的服务约定的水平,并且这种故障可能是不可接受的。

许多策略可用于处理可变负载在云中,根据业务目标应用程序。一种策略是使用自动缩放在任何给定时间相匹配供应资源给用户的需要。这具有始终如一地满足用户需求,同时优化运行费用的潜力。然而,尽管自动缩放可能会引发更多的资源配置配置是不是瞬间如果需求快速增长,有可能是一个时间窗口,那里是一个资源赤字。

解决方案


另一种策略自动缩放是为了让应用程序能够使用的资源最多只有一些软限位,然后油门他们达到此限制该系统应监测它是如何使用的资源,使得当使用量超过一些系统定义的阈值时,可以调节来自一个或多个用户的请求,以使系统继续工作,并满足任何服务级别协议(SLA),该已到位有关监控资源使用情况的详细信息,请参阅仪器和遥测指导

该系统可以实现多种限制策略其中包括
已经访问系统API超过每秒n次超过给定时间内个人用户拒绝请求这就要求系统利用资源用于运行应用程序的每个租户或用户欲了解更多信息,请参阅服务计量指引
禁用或有辱人格的选择不必要的服务功能,以便必要的服务可以提供足够的资源运行畅通。例如如果应用程序是视频流输出,它可以切换到一个较低的分辨率。
•使用负载均衡来平滑活动量这种方法是覆盖在基于队列的负载均衡模式的更多细节)多租户环境中,这种方法将减少为每一个租户的性能。如果系统必须支持的住户有不同的SLA的组合高价值租户的工作可能会被立即执行请求其他住户可以忍住以及时处理积压有所缓解优先级队列模式,可以用来帮助实现此方法
代表低优先级的应用程序或租户推迟执行的操作这些操作可以暂停或削减,异常生成的通知,该系统正忙,该操作应该稍后重试房客

图1示出一个区域图进行资源利用率存储器,CPU,带宽以及其它因素的组合)对时间对于正在使用三个特征的应用程序。一个特征是功能性的区域,例如,执行特定的任务集一个代码段,执行一个复杂的计算,或者,提供了一个服务,例如在内存中缓存的元素的组分。这些特征被标记为A,B和C.

图1  - 时间的曲线图的资源利用率代表三个用户运行的应用程序

注意:

立即功能的区域表示应用程序中使用时,调用此功能的资源。例如,下面线特色一个区域显示使用的正在使用的功能A的应用资源并为特征A和特征B线之间的区域使用的应用程序调用功能B.汇总指示资源对于每个特征区域显示了系统的总的资源利用率。



在图1中的曲线示出了延迟操作的效果只是之前的时间T1分配给使用这些功能的所有应用程序的总资源达到一个阈值(资源利用软限制这一点上,应用程序是在用尽可用的资源危险。在这个系统中,特征B比特点A特征Ç不太重要,所以它是暂时禁用,并且它被使用的资源被释放。之间的时间T1,T2使用功能A和功能C中的应用程序继续运行正常。最后,资源利用这两个功能减退的点,在时间T2时,有足够的容量,以再次启用功能B中。

自动缩放和调节方法也可以结合,以帮助保持应用程序响应和SLA之内。如果需求预计将保持高位节流可以提供一个临时的解决方案,同时在系统扩展在这一点上,该系统的全部功能可以恢复。

图2示出整体的资源利用通过在与时间的系统中运行的所有应用程序区域图示出了如何限制可与自动缩放组合。

图2 - 图表显示自动缩放节流相结合的效应


在时间T1门槛指定资源利用软限制为止。在这一点上,系统可以开始向外扩展然而,如果新的资源不成为可用的足够快地现有的资源可能被耗尽,并且系统可能会失败。为了防止这种情况发生,系统被暂时限制,如前面所述。何时自动缩放已完成额外资源限制可以放宽

问题和注意事项


在决定如何实现这个模式时,您应考虑以下几点:
节流的应用程序,并使用策略是一个建筑的决定,影响系统的整体设计节流在应用设计之初考虑,因为是不容易的添加它一旦系统已经实施
节流必须迅速执行。系统必须能够检测活性增加,并相应地作出反应。该系统必须能够恢复到原来的状态后快速负载有所缓和。这需要相应的性能数据是不断捕获监测。
•如果一个服务需要暂时拒绝用户的请求则它应该返回一个特定的错误代码,以使客户端应用程序理解拒绝执行某种操作原因是由于节流。客户端应用程序可以等待一段时间,然后重试该请求。
节流可作为系统autoscales一项临时措施在某些情况下可能是更好的简单节流,而不是按比例如果活动突发是突然的并且预计不会长寿命,因为结垢可显着增加了运行成本
•如果节流正在使用的临时措施,而一个系统autoscales,并且如果资源需求迅速增长,系统可能无法继续运作即使在节流模式中操作如果这是不能接受的考虑维护容量储备和配置更积极自动缩放

何时使用这个模式


使用这种模式
为了确保系统持续满足服务水平协议
为了防止单一租户独占由应用程序所提供的资源
为了处理突发活动
为了帮助限制需要保持运转的最大资源水平的成本优化的系统。

例子


图3示出了如何限制可以多租户系统来实现。从每个租户组织用户访问一个云托管的应用程序,他们填写并提交调查应用程序中包含的仪器,用于监视其中这些用户提交请求给应用程序的速度

为了防止用户一个租户影响应用的所有其他用户的响应性和可用性,限制施加到每秒任何一个租户用户可以提交请求的数目应用程序块请求超过此限制

图3 - 在一个多租户应用程序中实现节流

本文翻译自MSDN:http://msdn.microsoft.com/en-us/library/dn589798.aspx

 

目录
相关文章
|
10月前
|
设计模式 Java 数据库连接
【设计模式】【创建型模式】工厂方法模式(Factory Methods)
一、入门 什么是工厂方法模式? 工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定实例化哪个类。工厂方法模式使类的实例化延迟
292 16
|
10月前
|
设计模式 负载均衡 监控
并发设计模式实战系列(2):领导者/追随者模式
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发设计模式实战系列,第二章领导者/追随者(Leader/Followers)模式,废话不多说直接开始~
284 0
|
10月前
|
设计模式 监控 Java
并发设计模式实战系列(1):半同步/半异步模式
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发设计模式实战系列,第一章半同步/半异步(Half-Sync/Half-Async)模式,废话不多说直接开始~
327 0
|
10月前
|
设计模式 安全 Java
并发设计模式实战系列(12):不变模式(Immutable Object)
🌟 大家好,我是摘星!🌟今天为大家带来的是并发设计模式实战系列,第十二章,废话不多说直接开始~
235 0
|
12月前
|
存储 人工智能 物联网
云计算助力医疗信息化,推动智慧医疗新模式。
云计算正深刻改变医疗行业,通过高效数据存储、管理与共享,优化医疗资源分配,推动远程医疗发展。它解决了“数据孤岛”问题,强化了数据安全与隐私保护,同时助力智慧医疗建设,降低信息化成本并提升服务效率。未来,云计算将与5G、AI等技术融合,进一步促进医疗服务智能化与规范化,为医疗行业带来全新可能。
569 7
|
10月前
|
设计模式 算法 Java
设计模式觉醒系列(04)策略模式|简单工厂模式的升级版
本文介绍了简单工厂模式与策略模式的概念及其融合实践。简单工厂模式用于对象创建,通过隐藏实现细节简化代码;策略模式关注行为封装与切换,支持动态替换算法,增强灵活性。两者结合形成“策略工厂”,既简化对象创建又保持低耦合。文章通过支付案例演示了模式的应用,并强调实际开发中应根据需求选择合适的设计模式,避免生搬硬套。最后推荐了JVM调优、并发编程等技术专题,助力开发者提升技能。
|
10月前
|
设计模式 Prometheus 监控
并发设计模式实战系列(20):扇出/扇入模式(Fan-Out/Fan-In)(完结篇)
🌟 大家好,我是摘星!🌟今天为大家带来的是并发设计模式实战系列,第二十章,废话不多说直接开始~
317 0
|
设计模式
「全网最细 + 实战源码案例」设计模式——模式扩展(配置工厂)
该设计通过配置文件和反射机制动态选择具体工厂,减少硬编码依赖,提升系统灵活性和扩展性。配置文件解耦、反射创建对象,新增产品族无需修改客户端代码。示例中,`CoffeeFactory`类加载配置文件并使用反射生成咖啡对象,客户端调用时只需指定名称即可获取对应产品实例。
280 40
|
12月前
|
设计模式 Java 关系型数据库
设计模式:工厂方法模式(Factory Method)
工厂方法模式是一种创建型设计模式,通过将对象的创建延迟到子类实现解耦。其核心是抽象工厂声明工厂方法返回抽象产品,具体工厂重写该方法返回具体产品实例。适用于动态扩展产品类型、复杂创建逻辑和框架设计等场景,如日志记录器、数据库连接池等。优点包括符合开闭原则、解耦客户端与具体产品;缺点是可能增加类数量和复杂度。典型应用如Java集合框架、Spring BeanFactory等。
|
设计模式 Java
「全网最细 + 实战源码案例」设计模式——生成器模式
生成器模式(Builder Pattern)是一种创建型设计模式,用于分步骤构建复杂对象。它允许用户通过控制对象构造的过程,定制对象的组成部分,而无需直接实例化细节。该模式特别适合构建具有多种配置的复杂对象。其结构包括抽象建造者、具体建造者、指挥者和产品角色。适用于需要创建复杂对象且对象由多个部分组成、构造过程需对外隐藏或分离表示与构造的场景。优点在于更好的控制、代码复用和解耦性;缺点是增加复杂性和不适合简单对象。实现时需定义建造者接口、具体建造者类、指挥者类及产品类。链式调用是常见应用方式之一。
240 12

热门文章

最新文章