版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/hongchangfirst/article/details/25877059

SQS即Simple Queue Service, 是一个分布式的消息队列服务,使用它非常easy,消息队列服务能够用来buffer burst, 使整个服务异步处理,不要求组件始终可用.

开发者最初使用 Amazon SQS 时仅仅需用到五个 API:

CreateQueue、SendMessage、ReceiveMessage、ChangeMessageVisibility 和 DeleteMessage。

Amazon SQS 会尽量保持消息顺序,可是由于队列的分布式特性。SQS无法保证发送消息的先后顺序。

每一个 Amazon SQS 队列都具有可配置的可见性超时(Default Visibility Timeout)。在从队列中读取消息后的指定时间内。该消息对其它读取者保持不可见。

仅仅要消息的处理时间短于可见性超时,每条消息都会得以处理并删除。假设处理消息的组件出现失败或不可用,可见性超时结束后该消息即对读取该队列的不论什么组件可见。

这同意您让多个组件同一时候从同一队列中读取消息,每一个组件负责处理不同的消息。

 

在 Amazon SQS 返回消息后,该消息会保存在队列中,称之为In Flight状态。删除请求可确认已处理了该消息。

假设不删除消息,Amazon SQS 将在还有一个接收请求中递送该消息。

由于分布式 Amazon SQS 系统中的某台server在运行删除时不可用。DeleteMessage 操作未能删除消息的全部副本。该消息副本可能会被再次递送。所以应该在应用中进行对应的设计,以便在再次收到已删除的消息时不会出现错误或不一致。 

 假设连续 30 天以上时间没有针对某个队列签发下面不论什么请求,SQS有可能删除该队列:SendMessage、ReceiveMessage、DeleteMessage、GetQueueAttributes 和 SetQueueAttributes。设计应用程序时应将此考虑在内,这点比較恶心,认为不应该有这种性质。

短轮询和长轮询(差别是是否採样)

假设使用短轮询,则您从队列中检索消息时。Amazon SQS 会对server的一个子集(基于加权随机分布)进行採样,而且仅从这些server返回消息。

这意味着。特定接收请求可能不会返回您的全部消息。或者,假设您的队列中有少量消息(少于 1 000 条),则意味着,特定请求可能不会返回您的不论什么消息,而兴许请求则会返回您的不论什么消息。假设您继续从您的队列中检索消息。则 Amazon SQS 会对全部server进行採样,您会收到您的全部消息。

使用 Amazon SQS 进行长轮询的一个优点是:在没有消息可返回以答复发送到 Amazon SQS 队列的 ReceiveMessage 请求时。能够降低空响应数量。

在发送响应之前,长轮询同意 Amazon SQS 产品等到队列中的消息可用为止。因此,假设连接没有超时,则对 ReceiveMessage 请求的响应将至少包括一条可用的消息(假设有)。最多可包括 ReceiveMessage 调用中请求的最大消息数。

Receive Message Wait Time就是设置短轮询还是长轮询的,0代表短轮询,最大到20.

Amazon SQS 使用您须要熟悉的下面三个标识符:

队列 URL
消息 ID
接收句柄

每一个队列飞行消息(Messages in Flight)的数量限制为 120,000。

消息被队列接收后会处于飞行状态。但尚未从队列中删除。

假设达到 120,000 的限制,将会收到一条来自 Amazon SQS 的“OverLimit”错误消息。

为避免达到限制。应该在处理消息后将其从队列删除。

延迟队列同意将队列中新消息的传递操作推迟特定的秒数(Delivery Delay)。

假设您创建延迟队列,则发送到该队列的不论什么消息在延迟期间对使用者都不可见。延迟队列相似于可见性超时。由于这两种功能都使得使用者在特定的时间段内无法获得消息。

延迟队列和可见性超时之间的差别在于:对于延迟队列。消息在首次加入到队列时是隐藏的;而对于可见性超时,消息仅仅有在从队列取回后才是隐藏的。

默认拒绝和显式拒绝的差别非常重要。由于默认拒绝能够被同意覆盖,可是显式拒绝就不能。

显示拒绝是并的关系,默认拒绝是或的关系.

原文:http://blog.csdn.net/hongchangfirst/article/details/25877059

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst

Amazon SQS(Simple Queue Service) 简单介绍的更多相关文章

  1. S3 服务(Simple Storage Service简单存储服务) 简介(与hdfs同一级)

    图1  spark 相关 亚马逊云存储之S3(Simple Storage Service简单存储服务) (转 ) S3是Simple Storage Service的缩写,即简单存储服务.亚马逊的名 ...

  2. HTTPSQS(HTTP Simple Queue Service)消息队列

    HTTPSQS(HTTP Simple Queue Service)是一款基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务,使用 Tokyo Cabinet 的 B+Tree Key ...

  3. 使用Amazon Simple Queue Service(SQS) 实现简单的消息服务

    一  引言 亚马逊Amazon作为云计算的领跑者推出了很多云服务,最近因为项目的原因,需要用到SQS服务,因此简要地写下这篇随笔,一来方便以后查阅,二来方便共享一些简单的操作. SQS即可以理解为一个 ...

  4. Amazon SNS (Simple Notification Service) Using C# and Visual Studio

    SNS (Amazon Simple Notification Services) Amazon SNS (Amazon Simple Notification Services) is a noti ...

  5. 安卓之service简单介绍

    一 什么是Service 二 如何使用Service 三 Service的生命周期   一 什么是Service Service,看名字就知道跟正常理解的“服务”差不多,后台运行,可交互这样的一个东西 ...

  6. Amazon SQS简单介绍 上篇

    SQS即Simple Queue Service, 是一个分布式的消息队列服务,使用它很easy,消息队列服务能够用来buffer burst, 使整个服务异步处理,不要求组件始终可用. 开发者最初使 ...

  7. [AWS vs Azure] 云计算里AWS和Azure的探究(6) - Amazon Simple Storage Service 和 Microsoft Azure Blob Storage

    这几天Nasuni公司出了一份报告,分析了各个云厂商的云存储的性能,包括Amazon S3,Azure Blob Storage, Google Drive, HP以及Rackspace.其中性能上A ...

  8. Android Service使用简单介绍

    作为一个android初学者,经常对service的使用感到困惑.今天结合Google API 对Service这四大组件之一,进行简单使用说明. 希望对和我一样的初学者有帮助,如有不对的地方,也希望 ...

  9. AWS系列-Amazon Simple Notification Service (SNS)

    SNS是一项 Web 服务,用于协调和管理向订阅终端节点或客户交付或发送消息的过程.在 Amazon SNS 中有两种类型的客户端:发布者和订阅者,也称为生产者和消费者.发布者通过创建消息并将消息发送 ...

随机推荐

  1. "佛祖保佑 永无bug" 注释模板设置详解(仅供娱乐)

    1.注释模板效果图 今天在网上看到一段有趣的注释,佛祖保佑 永无bug, 效果如下图所示:  代码如下所示: /** * _ooOoo_ * o8888888o * 88" . " ...

  2. MFC AfxMessageBox(_T("Please Load Rawdata First !"));

    AfxMessageBox(_T("Please Load Rawdata First !"));

  3. JQuery EasyUI DataGrid获取当前行

    1.获取当前行索引 var rowIndex = $('#dg').datagrid('getRowIndex', row); 2.根据索引删除当前行 $('#dg').datagrid('delet ...

  4. webpack之proxyTable配置

    有两种情况: 一,有统一的项目名 config下index.js 配置如下: proxyTable: { '/tbt_user':{ target: 'http://47.98.216.251:80' ...

  5. maven子项目的springboot配置

    正常来说一个maven子项目的parent是父项目,而不是直接继承,这时候就需要改下配置 默认生成的代码入下: <?xml version="1.0" encoding=&q ...

  6. mui---自定义页面打开的方向

    在使用MUI做APP的时候,会考虑对页面的打开方向做规定,MUI也给我们提供了很多种页面的打开方式. 具体参考: http://ask.dcloud.net.cn/question/174 MUI做A ...

  7. 10.5ORM回顾(2)

    2018-10-5 14:47:57 越努力越幸运!永远不要高估自己! ORM的聚合和分组查询!!! # #####################聚合和分组##################### ...

  8. 夺冠概率|2012年蓝桥杯B组题解析第九题-fishers

    (17')夺冠概率 足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能. 假设有甲.乙.丙.丁四个球队.根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表: 甲 乙 丙 丁 甲 - 0. ...

  9. Python与金融量化分析----金融与量化投资

    一:金融了解 金融:就是对现有资源进行重新的整合之后,进行价值和利润的等效流通. 金融工具: 股票 期货 黄金 外汇 基金 ............. 股票: 股票是股份公司发给出资人多的一种凭证,股 ...

  10. Cobbler 登录web界面提示报错“Internal Server Error”解决办法

    Cobbler登录web页面报错 查看httpd日志/etc/httpd/logs/ssl_error_log 查看cobbler的py配置文件 sed -n '38,41p' /usr/share/ ...