您的位置:首页 > 产品设计 > UI/UE

【CDP-云设计模式】第8章,2.优先级队列模式(Priority Queue Pattern)

2016-09-20 08:59 302 查看

1.要解决的问题

  有时会有大量工作需要处理,而且这些工作可能需要重新定义优先级。例如,未付款用户和订阅用户(如截止出版时间)可享受的不同级别的服务之间存在区别,举个例子,从web浏览器上传出版物的描述文件。当用户上传一个描述文件时,例如对于出版物所执行的转换过程在系统端表现为一批进程,转换结束后文件就被发布了。那么此时给这些批处理进程指定优先级对于各类用户来说就显得十分重要了。

2.云模式的说明

  队列将被用于控制批处理工作。只需要给队列提供优先级序号。工作请求由队列控制,队列中的工作请求由批处理服务器处理。在云计算中,高可靠队列是作为一项服务被提供的,您可以用它来轻松构建高可靠的批处理系统。您可以根据优先级别准备多个队列,并依据优先级将请求放入队列,从而在批处理进程中应用优先级。相应队列的批处理服务器的性能(数量)应该与其优先级别相匹配。

3.实施

  在AWS中,队列服务是SQS。可能需要多个SQS队列为不同的优先级别准备队列(包括优先队列和次级队列)。此外,您还可以使用消息延迟发送功能来推迟进程的执行。

使用SQS为不同的优先级别准备队列。

将需要立即执行的进程(工作请求)放置在高优先级队列中。

准备一定数量的批处理服务器,根据优先级别处理队列中的工作请求。

队列拥有消息“延迟发送”的功能。您可以使用这项功能来推迟进程开始的时间。

4.配置



5.好处

您可以增加或者减少处理工作的服务器数量从而自动调整优先队列和次级队列的工作处理速度。

您仅需增加或者减少处理工作的EC2实例的数量就可以满足性能和服务需求。

即使EC2实例出现故障,消息(工作)仍会留在队列服务中,使得进程能够在EC2实例恢复后立刻继续执行,从而打造一个面对故障也能稳如泰山的系统。

6.注意事项

  根据处理进程的EC2实例数量和队列中消息数量的平衡情况,可能会出现次级队列中的进程先处理完的情况,所以您需要监控主队列和次级队列的处理速度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息