Amazon SQS简介 上篇

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

开发人员最初使用 Amazon SQS 时只需用到五个 API:

CreateQueue、SendMessage、ReceiveMessage、ChangeMessageVisibility 和 DeleteMessage。

Amazon SQS 会尽量保持消息顺序,但是由于队列的分布式特性,它无法保证消息的先后顺序。也正是因为舍弃了这些特性,才得以保持了SQS的可扩展性。

每个 Amazon SQS 队列都具有可配置的可见性超时(Default Visibility Timeout)。在从队列中读取消息后的指定时间内,该消息对其他读取者保持不可见。只要消息的处理时间短于可见性超时,每条消息都会得以处理并删除。如果处理消息的组件出现失败或不可用,可见性超时结束后该消息即对读取该队列的任何组件可见。这允许多个组件同时从同一队列中读取消息,每个组件负责处理不同的消息, 所以这个特性需要应用是幂等的。

在 Amazon SQS 返回消息给您时,该消息会保存在队列中,无论实际上您是否收到该消息。您要负责删除该消息;删除请求可确认您已处理了该消息。如果您不删除消息,Amazon SQS 将在另一个接收请求中递送该消息。

所以这样情况也是有可能发生的,由于分布式 Amazon SQS 系统中的某台服务器在执行删除时不可用,DeleteMessage 操作未能删除消息的所有副本。该消息副本可能会被再次递送,所以在设计应用程序时,要考虑此,以便再次收到已删除的消息时不会出现错误或不一致。

如果连续 30 天以上时间没有针对某个队列签发以下任何请求,SQS有可能删除该队列:SendMessage、ReceiveMessage、DeleteMessage、GetQueueAttributes 和 SetQueueAttributes。设计应用程序时应将此考虑在内。

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

作者:hongchangfirst

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

时间: 2024-10-06 06:10:15

Amazon SQS简介 上篇的相关文章

Amazon SQS(Simple Queue Service) 简介

SQS即Simple Queue Service, 是一个分布式的消息队列服务,使用它非常简单,消息队列服务可以用来buffer burst, 使整个服务异步处理,不要求组件始终可用. 开发人员最初使用 Amazon SQS 时只需用到五个 API: CreateQueue.SendMessage.ReceiveMessage.ChangeMessageVisibility 和 DeleteMessage. Amazon SQS 会尽量保持消息顺序,但是由于队列的分布式特性,SQS无法保证发送消

Amazon DynamoDB简介(一)

DynamoDB的数据是存储在SSD(Solid State Drive,固态硬盘),这样可在预测的低延迟响应时间之内,存储和访问任何规模的数据,另外SSD 还具有很高的 I/O 性能,能够处理大规模请求工作负载.我们来看看DynamoDB的不适合的使用场景:如果需要存储大量数据,但这些数据的访问频率很低,则 DynamoDB 可能不太适合. DynamoDb的数据模型是无模式的,可认为是简单的key-value模式.不过特殊之处在于它的主键可以是单属性的哈希键或复合的哈希-范围键.例如,单属性

Amazon DynamoDB 简介(二)

在DynamoDB中,database是table的集合,table是item的集合,item是attribute的集合.attribute是name-value对.value可以是单值属性也可以是多值属性(集合).一个item的大小不能超过64KB.理解了这个你就入门了. 另外,DynamoDB为了支持更为丰富的查询,提出了二级索引的思想,可以在表中创建一个或多个二级索引,并对这些索引发出 Query 请求.有两种类型的二级索引: 本地二级索引(Local Secondary Indexes)

Amazon SQS 消息队列服务

Amazon sqs是亚马逊提供的线上消息队列服务, 可以实现应用程序解耦,以及可靠性保证. sqs提供了两种消息队列, 一种是标准消息队列, 一种是先进先出队列(FIFO), 其区别是FIFO是严格有序的,即消息接收的顺序是按照消息发送的顺序来的, 而标准队列是尽最大可能有序, 即不保证一定为有序, 此外FIFO还保证了消息在一定时间内不能重复发出,即使是重复发了, 它也不会把消息发送到队列上. 队列操作 创建队列 AmazonSQS sqs = AmazonSQSClientBuilder.

Amazon SQS 延迟队列

延迟队列可让您将针对队列的新消息传递操作推迟特定的秒数.如果您创建延迟队列,则发送到该队列的任何消息在延迟期间对用户都保持不可见.队列的默认(最小)延迟为 0 秒.最大延迟为 15 分钟. 延迟队列类似于可见性超时,因为这两种功能都使得使用者在特定的时间段内无法获得消息.二者之间的区别在于:对于延迟队列,消息在首次添加到队列时 是隐藏的:而对于可见性超时,消息只有在从队列使用后 才是隐藏的.下图说明了延迟队列和可见性超时之间的关系. 要为单条消息 而不是整个队列设置延迟(以秒为单位),请使用消息

Amazon CloudFront简介

Amazon CloudFront类似于CDN,提供全球的内容分发服务,它在全球都有很多edge location,使你的客户能最小延迟的拿到数据. 他的原理是这样的,你会配置一个origin,当请求来的时候,CloudFront会根据配置去相应的origin拿数据,并缓存起来到全球的各个edge location.下次客户就直接在最近的edge location拿数据就行了.Origin可以是Amazon S3 buckets,也可以是自己的Web Servers.你给客户的就是一个cloud

云计算平台简介(App Engine)

云计算平台简介(App Engine) 1   简介 App Engine: 应用程序引擎,是托管网络应用程序的云计算平台. 1.1  什么是云 云计算通常简称为“云”,是一种通过 Internet 按需交付计算资源(从应用到数据中心都属于计算资源)和按使用付费的基础架构. 富有弹性的资源:能快速轻松地扩大或缩小规模,以满足您的需求 按使用付费:计量服务的使用情况,只需为所用的服务付费 自助服务:使用自助服务可访问您需要的所有 IT 资源 1.2  云计算部署模型 1.2.1 公共云 公共云由一

物联网平台构架系列 (四):Amazon, Microsoft, IBM IoT 平台导论 之 平台

最近研究了一些物联网平台技术资料,以做选型参考.脑子里积累大量信息,便想写出来做一些普及.作为科普文章,力争通俗易懂,不确保概念严谨性.我会给考据癖者提供相关英文链接,以便深入研究. -- 冯立超 HiwebFrank 4. 平 台 由于物联网的地域分布广.设备数量众多的特点,物联网解决方案必须借助公有云平台来实现. 物联网解决方案须具备如下功能: - 从设备收集数据 - 分析移动中的数据流 - 存储和查询大型数据集 - 可视化实时和历史数据 - 与后端办公系统集成 - 管理设备 下图是微软给出

OSGI中blueprint简介

OSGI中blueprint简介 上篇博文我们开始了felix中的一个example编写,原本计划是讲felix中的几个example全部编写一遍,但是随后发现felix的这几个example都差不多,只是略微有些区别,编写来编写去始终都是这几行代码,讲起来也没什么意思,想着还是开始osgi中新的东西的讲解,思考来去,还是从blueprint开始. blueprint简介 在osgi中服务的使用有多种方式,如使用传统的注册式服务,就是我们之前中example不断使用的使用方式,还是osgi中的声