Day 23 AWS的云上排队服务-SQS

想知道如何在云端上传递和处理来自使用者的网路请求讯息吗?AWS的SQS可以帮助我们做到这一点。我们往下走吧!

1. SQS的应用价值

SQS是Simple Queue Service的缩写,是一套可以提供云端讯息处理和程序作业的服务,让我们可以有效、弹性处理大型任务和接收讯息的频率。

2. SQS的组成和运作机制

参考大话AWS云端架构一书的架构图,SQS的组成如下:
情境是我们在云端的系统接收到使用者的网路流量去执行某项工作。第一台机器称作Producer收到流量後,会发送讯息告知使用者,你的流量我们收到了,请耐心等候下一则的工作状态通知;并将使用者要求的工作内容传递到Message。Message会将讯息以JSON格式放置到Queue内。第二台机器Consumer会依序处理Queue的任务,并根据进度,告知使用者工作状态。

2.1 Producer传送资料

Producer最大可传送至Message的容量大小是256KB。那要传送大型的档案,不就无解?解法就在S3!什麽意思呢?
在讯息传送过程当中,大的档案会被上传至S3,讯息本身只需要纪录档案存放在S3上的路径。档案本身的处理,Consumer只需要根据讯息所提供的档案路径,即可去S3把资料拉下来处理,处理後的资料一样放回S3;使用者需要处理过後的资料时,一样根据讯息内所提供的S3路径,便可取得所需资料。
Producer传送到在Queue里面的讯息,最多可以放4天;超过4天的话,则需要另外调整参数,以目前服务来看,最多可放到14天。

2.2 Consumer处理资料

Consumer处理资料的方式有两种,FIFO以及Standard。

  • FIFO: 也就是First In First Out,先进入Message的讯息,会优先处理。
  • Standard: 可根据使用者需求,客制化调整优先处理讯息的次序。
    关於Consumer还有一个重点,就是如果今天有多个Consumer的机器一起运作的话,怎麽避免同一条讯息被多个Consumer机器重复处理呢?这里有一套机制去应对这种情况: 每当讯息被其中一个Consumer机器选中时,该则讯息就会变成隐形(invisibility),并在该则讯息被Consumer正式处理完毕後,该则讯息就会直接被删除掉。这样做法,可以有效减少同工的问题发生。
    此外,Consumer在Queue去撷取讯息的频率,也是我们可以调整的一项变数。端看讯息来源量的多寡,我们可以选用Long Polling(Consumer撷取讯息频率较低)或者Short Polling(Consumer撷取讯息频率较高)。

<<:  上传与下载

>>:  {DAY 24} Pandas 学习笔记part.10

资料结构(Data Structure),#阵列(array)-最常见的资料结构

#14章、资料结构(Data Structure) #14-1.#阵列(array)-最常见的资料结...

14 实作出牌倒数 诶这是什麽放置游戏

实作出牌倒数计时 ok, 我们有两个地方需要开始计时 第一个是游戏开始的时候, 第二个是 turn ...

引言与大纲

这系列文章,将会带过数个跨度极大的主题,故有需要先於开篇的引文来作展开。 首先,我们由RISC-V是...

被供应商和客户G爆时来一帖「资讯安全oo声明书」吧

资讯安全管理制度(ISMS)相关文件属於企业或机构内部资安治理运行标准与纪录,机密等级(控管标准)大...

DAY13 - [JS] 重新改写ToDoList

今日文章目录 需求说明 事前准备 重点说明 参考资料 DAY12练习ToDoList分类项目,遇到...