简单队列服务SQS

1.SQS的基本模型

SQS由3个基本部分组成:系统组件(Component),队列(Queue),消息(Message)

(1)系统组件

系统组件是SQS的服务对象,而SQS则是组件之间沟通的桥梁

组件既可以是消息的发送者,也可以是消息的接收者

(2)队列

队列是存放消息的容器,类似于S3中的桶

队列的数目是任意的,创建队列时用户必须给其指定一个在SQS账户内唯一的名称

队列在传递消息时会尽可能实现 “先进先出”,但无法保证先进入的消息一定会最先被投递给指定的接受者

不过SQS允许用户在消息中添加有关的序列数据,对于数据发送顺序要求比较高的用户可以在发送消息之前向其中加入相关信息。

(3)消息

消息是发送者创建的具有一定格式的文本数据,接收对象可以是一个或多个组件

消息的大小是有限制的,但是消息的数量并未做限制

在SQS中,消息和队列是最重要的两个概念。

2.SQS的消息

消息的格式:

消息由四部分组成。

消息取样:

 消息取样示意图:

消息的可见性超时值及生命周期:

可见性表明该消息可以被所有的组件查看,可见性超时值相当于一个计时器,在设定好的时间内,发给用户的消息对于其他所有的组件是不可见的。

扩展操作就是将计时器按照新设定的值重新计时,终止就是将当前的计时过程终止,直接将消息由不可见变为可见。