(十六)——优先级队列模式.pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(十六)——优先级队列模式

(⼗六)——优先级队列模式 云计算设计模式 (⼗六)——优先级队列模式 优先发送到服务,以便具有较⾼优先级的请求被接收和⾼于⼀个较低优先级的更快速 地处 请求。这种模式是在应⽤程序是有⽤的,它提供不同的服务级别保证或者针对 独⽴客户。 背景和问题 应⽤程序可以委托给其他服务的具体任务;例如,为了执⾏后台处 或与其他应⽤程序 或服务的整合。在云中,消息队列通常⽤于将任务委派给后台处 。在许多情况下, 请求由服务接收的顺序是不重要的。然⽽,在某些情况下,可能需要优先考虑的具体 要求。这些要求必须早于较低优先级的其他可能先前已发送由应⽤程序进⾏处 。 解决⽅案 队列通常是先⼊先出 (FIFO )结构,⽽消费者通常会收到他们发布到队列中的顺序相 同的消息。然⽽,⼀些消息队列⽀持优先级的消息传递;应⽤程序发布⼀条消息可以分 配优先级的消息,并在队列中的消息会⾃动重新排序,使得具有较⾼优先级的消息将 这些优先级较低的前被接收。图1⽰出了⼀个队列,它提供优先权的消息。 图1 - 使⽤⽀持消息优先级排队机制 注意: ⼤多数消息队列的实现⽀持多个消费者 (以下的竞争消费者模 式)和消费过程的数量可以按⽐例增加或减⼩的需求⽀配。 在不⽀持基于优先级的消息队列系统中,⼀种替代的解决⽅案是为每⼀个优先级的独 ⽴队列。该应⽤程序负责将邮件投递到适当的队列。每个队列可以有⼀个单独的消费 者池。⾼优先级队列可以有更快的硬件⽐低优先级队列中运⾏的消费者⼀个更⼤的泳 池。图2⽰出了这种⽅法。 图2 - 使⽤不同的消息队列为每个优先级 这种策略的变化是有消费者认为检查对⾼优先级队列中的消息,然后再才开始从低优 先级队列中读取消息,如果没有更⾼优先级的消息都在等待的⼀个池。还有,使⽤消 费过程的⼀个池的溶液之间的⼀些语义差异 (或者使⽤⽀持不同的优先级或多个队 列,每个处 ⼀个单⼀的优先级消息的消息的单个队列),以及使⽤多个队列⽤溶液 为每个队列⼀个单独的游泳池。 在单池的做法,⾼优先级的消息总是会收到以前低优先级的消息处 。在 论中,具 有⾮常低的优先级的消息可以被不断地取代,并且可能永远不会被处 。在多池的⽅ 法,较低优先级的报⽂将总是被处 ,只是不⼀样迅速的那些更⾼的优先级的 (取决 于池和它们具有可⽤资源的相对⼤⼩)。 使⽤优先级排队机制可提供以下优点: 它允许应⽤程序以满⾜必要的可⽤性或性能优先的业务需求,如提供不同级别 的服务,以客户的特定群体。 它可以帮助最⼤限度地降低运营成本。在单队列的⽅式,你可以缩减⽤户的数 量,如果有必要的。⾼优先级消息仍将被⾸先处 (虽然可能更慢),和低优 先级的消息可能会延迟更长。如果您已实现与消费者的每⼀个单独的队列池多 个消息队列的⽅式,可以减少消费者的池低优先级队列,或者甚⾄停⽌所有监 听的讯息的消费者暂停处 ⼀些⾮常低优先级队列这些队列。 在多个消息队列的⽅法可以帮助划分的基础上处 要求的消息,以最⼤限度地 提⾼应⽤程序的性能和可扩展性。例如,重要的任务,可以优先被⽴即运⾏, ⽽不太重要的后台任务可以被安排在不太繁忙的时段运⾏的接收器来处 接收 处 。 问题和注意事项 在决定如何实现这个模式时,请考虑以下⼏点: 定义优先级的解决⽅案的情况下。例如,“⾼优先级”可能意味着,信息应该在 ⼗秒内进⾏处 。标识要求处 ⾼优先级的项⽬,以及其他什么资源必须分配 给符合这些标准。 确定是否所有⾼优先级的项⽬必须在任何优先级较低的项⽬之前进⾏处 。如 果该消息是由消费者的⼀个池被处 ,可能有必要提供⼀种可抢先和暂停正在 处 的低优先级消息,如果更⾼优先级的消息,有⼀个任务的机制。 在多个队列中的⽅法,使⽤该监听所有的队列,⽽不是⼀个专门的客户池的每 个队列的消费过程的⼀个池时,消费者必须应⽤⼀种算法,以确保它总是从那 些从低之前较⾼优先级的队列提供服务的消息优先级队列。 监视处 的⾼和低优先级队列中的速度,以确保在这些队列中的消息的预期的 速率进⾏处 。 如果需要,以保证低优先级的消息将被处 时,可能有必要实现与消费者的多 个池的多个消息队列的⽅法。或者,在⼀个⽀持消息优先队列,它可能会动态 地增加⼀个排队的消息的优先级,因为它的年龄。然⽽,该⽅

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档