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会将该消息的状态变成可见并给用户重传这个消息。
  • 扩展操作:将计时器按照新设定的值重新计时,终止就是将当前的计时过程终止,直接将消息由不可见变为可见。
相关推荐
AOwhisky5 小时前
Linux(CentOS)系统管理入门笔记(第十四期)——计划任务与进程调度管理:atcron 与 nicechrt
linux·运维·笔记·centos·云计算·进程调度·计划任务
冰封之寂17 小时前
Docker 资源管理终极指南:CPU、内存与 IO 的精细化控制
linux·运维·服务器·docker·云计算
yiyeguzhou1001 天前
Load/Store 和 Register–memory 架构
性能优化·云计算
AOwhisky1 天前
Linux(CentOS)系统管理入门笔记(第十二期)——系统管理工具与软件包管理(上篇):Cockpit 与 RPM 包管理
linux·运维·笔记·centos·云计算
TMT星球2 天前
IDC报告:阿里云稳居中国混合云软件及服务市场第一
阿里云·云计算
weixin_666593992 天前
自然资源时空智能体建设方案:从数字化到智能化的演进路径
大数据·人工智能·大模型·云计算·agent·云平台·空间数据库
Database_Cool_2 天前
LLM 应用怎么省 Token、加速响应——阿里云 Tair 语义缓存实战
阿里云·缓存·云计算
RoboWizard2 天前
金士顿高速闪存盘 单双接口适配多元存储需求
大数据·运维·人工智能·智能手机·云计算
Kari112 天前
腾讯云ADP部署需要什么条件?部署流程与配置检查清单
人工智能·云计算·腾讯云
国际云,接待2 天前
Google Cloud Armor实战:给网站API加WAF、限速和日志验证
后端·网络安全·云计算·googlecloud