Amazon云计算AWS之[6]简单队列服务SQS

简单队列服务SQS

简单队列服务SQS

  • 简单队列服务(Simple Queue Service,SQS)是Amazon为解决其云计算平台之间不同组件的通信而专门设计开发的。

SQS基本组成

  • SQS由三个基本部分组成:系统组件(Component)、队列(Queue)和消息(Message)。、
  • 消息和队列是最重要的两个概念。

系统组件

  • 系统组件是SQS的服务对象。组件既是消息的发送者,也是消息的接收者。
  • SQS则是组件之间沟通的桥梁

队列

  • 队列是存放消息的容器 ,类似 S 3 S3 S3中的桶。
  • 队列的数目任意,创建队列时用户必须给其指定一个在SQS账户内唯一的名称。当需要定位某个队列时采用URL的方式进行访问,URL是系统自动给创建的队列分配的。
  • 队列在传递消息时会尽可能实现"先进先出",但无法保证先进入的消息一定会最先被投递给指定的接收者。

消息

  • 消息是发送者创建的具有一定格式的文本数据接收对象可以是一个或多个组件
  • 消息的大小有限制,但数量不做限制
  • SQS允许用户在消息中添加有关的序列数据,对于数据发送顺序要求比较高的用户可以在发送消息之前向其中加入相关信息。

SQS的消息

消息格式

  • 消息ID(Message ID):由系统返回给用户,用来标识队列中的不同消息
  • 接收句柄(Receipt Handle):当从队列中接收消息时会从消息处获得接收句柄,该句柄可以用来对消息进行删除等操作。
  • 消息体(Body):消息的正文部分,需要注意的是消息存放的是文本数据并且不能是URL编码方式。
  • 消息体MD5摘要(MD5 of Body):消息体字符串的MD5校验和。

消息取样

  • 队列中的消息是冗余存储 的,同一个消息会存放在系统的多个服务器上。其目的是为了保证系统的高可用性,但会给用户查询队列中的消息带来麻烦。

  • 为解决该问题,SQS采用基于加权随机分布(Weighted Random Distribution)的消息取样 。当用户发出查询队列中消息的命令后,系统在所有的服务器上使用基于加权随机分布算法随机地选出部分服务器 ,然后返回这些服务器上查询到的队列消息副本。

  • 当消息数量较少时,SQS进行消息取样时可能会出现返回结果不准确的现象

  • 但由于消息采样具有随机性,只要用户一直查询下去,总会查询到所有的消息。

消息可见性超时值和生命周期

  • 在SQS中,消息是否被接受是由用户确认的。当用户执行删除操作后,系统会认为用户已接收到消息,将队列中的消息彻底删除。如果用户未接收到数据或接收到数据未被执行删除操作,SQS将在队列中保留该消息。
  • 为保证其他组件不会看见用户的消息,SQS会将该消息阻塞,相当于给消息加锁。但是锁并不会一直锁住消息,因为系统保留消息的目的是给用户重传数据。为此SQS引入一个可见性超时值(Visibility Timeout)。
  • 可见性:表示该消息可以被所有的组件查看。可见性超时值相当于一个计时器。在设定好的时间内,发给用户的消息对于其他所有的组件是不可见的。如果在计时器到时之前用户一直未执行删除操作,则SQS会将该消息的状态变成可见并给用户重传这个消息。
  • 扩展操作:将计时器按照新设定的值重新计时,终止就是将当前的计时过程终止,直接将消息由不可见变为可见。
相关推荐
眷怀5 小时前
网卡绑定bonding
linux·运维·服务器·网络·云计算
数勋API7 小时前
银行卡归属地查询API接口如何用PHP调用
开发语言·云计算·php
zhojiew9 小时前
aws xray通过设置采样规则对请求进行过滤
aws
tmgmforex20249 小时前
亚马逊云计算部门挑战英伟达,提供免费AI计算能力
人工智能·科技·云计算
CCSBRIDGE12 小时前
给阿里云OSS绑定域名并启用SSL
阿里云·云计算·ssl
沈艺强14 小时前
云计算在esxi 主机上创建 4g磁盘,同时在此磁盘上部署linux
云计算
九河云1 天前
AWS EC2镜像费用详解:什么是免费的,什么是收费的?
服务器·云计算·aws
sealaugh321 天前
aws(学习笔记第十二课) 使用AWS的RDS-MySQL
笔记·学习·aws
杰森V+1 天前
融云:社交泛娱乐出海机会尚存,跨境电商异军突起
网络·云计算
腾讯蓝鲸智云1 天前
大模型在蓝鲸运维体系应用——蓝鲸运维开发智能助手
运维·自动化·云计算·sass