Amazon SQS(Simple Queue Service) 简单介绍
版权声明:本文为博主原创文章,未经博主同意不得转载。 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) 简单介绍的更多相关文章
- S3 服务(Simple Storage Service简单存储服务) 简介(与hdfs同一级)
		
图1 spark 相关 亚马逊云存储之S3(Simple Storage Service简单存储服务) (转 ) S3是Simple Storage Service的缩写,即简单存储服务.亚马逊的名 ...
 - HTTPSQS(HTTP Simple Queue Service)消息队列
		
HTTPSQS(HTTP Simple Queue Service)是一款基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务,使用 Tokyo Cabinet 的 B+Tree Key ...
 - 使用Amazon Simple Queue Service(SQS) 实现简单的消息服务
		
一 引言 亚马逊Amazon作为云计算的领跑者推出了很多云服务,最近因为项目的原因,需要用到SQS服务,因此简要地写下这篇随笔,一来方便以后查阅,二来方便共享一些简单的操作. SQS即可以理解为一个 ...
 - Amazon SNS (Simple Notification Service) Using C# and Visual Studio
		
SNS (Amazon Simple Notification Services) Amazon SNS (Amazon Simple Notification Services) is a noti ...
 - 安卓之service简单介绍
		
一 什么是Service 二 如何使用Service 三 Service的生命周期 一 什么是Service Service,看名字就知道跟正常理解的“服务”差不多,后台运行,可交互这样的一个东西 ...
 - Amazon SQS简单介绍 上篇
		
SQS即Simple Queue Service, 是一个分布式的消息队列服务,使用它很easy,消息队列服务能够用来buffer burst, 使整个服务异步处理,不要求组件始终可用. 开发者最初使 ...
 - [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 ...
 - Android Service使用简单介绍
		
作为一个android初学者,经常对service的使用感到困惑.今天结合Google API 对Service这四大组件之一,进行简单使用说明. 希望对和我一样的初学者有帮助,如有不对的地方,也希望 ...
 - AWS系列-Amazon Simple Notification Service (SNS)
		
SNS是一项 Web 服务,用于协调和管理向订阅终端节点或客户交付或发送消息的过程.在 Amazon SNS 中有两种类型的客户端:发布者和订阅者,也称为生产者和消费者.发布者通过创建消息并将消息发送 ...
 
随机推荐
- [转]搞个这样的 APP 要多久
			
我有些尴尬地拿着水杯,正对面坐着来访的王总,他是在别处打拼的人,这几年据说收获颇丰,见移动互联网如火如荼,自然也想着要进来干一场,尽管王总从事的行当也算跟IT沾边,但毕竟太长时间不接触技术,有些东西不 ...
 - Git 修改远端仓库地址
			
方法有三种:1.修改命令git remote set-url origin [url] 例如:git remote set-url origin gitlab@gitlab.chumob.com:ph ...
 - 设计模式-结构型模式,python组合模式
			
设计模式上大的方向上分继承和组合,就是类模式和对象模式.此篇的组合模式非继承和组合概念中的组合.桥接 策略 代理 装饰者都用了组合,此组合非彼组合. 组合模式 组合模式(Composite Patte ...
 - [Bayes] qgamma & rgamma: Central Credible Interval
			
gamma分布的density的奇怪特性,如下: Poisson的Gamma先验 h(x) 的置信区间 的 获取 > n = > sumx= > > alpha= > ...
 - [Algorithm] Maximum Flow
			
Ref MIT: lecture-13-incremental-improvement-max-flow-min-cut/ Ford Fulkerson algorithm for finding m ...
 - mysql5.5 报Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
			
通过yum 的webstatic源安装的mysql55w-server,然后用service mysqld start启动时报 MySQL Daemon failed to start.Startin ...
 - linq时间筛选以及list时间筛选
			
Linq的时间筛选 //写法一:正常 IEnumerable<x> xList = dbContext.xs.OrderByDescending(u => u.CreateTime) ...
 - Mac下利用Cordova打包 iOS App以及出现的问题
			
安装 cordova sudo npm install cordova 创建项目 创建一个demo文件夹,里面自动加载基本的文件以及目录 cordova create demo com.test.de ...
 - day_5.10py 爬妹子图片  mm131
			
#目前学的爬虫还有潭州教育的直播课,都是千篇一律的requests urllib 下面这个也是,还没有我后面的下载网易云歌单爽来都用到多线程了不过可以用协程,完全异步 1 #!/usr/bin/env ...
 - 在PowerShell中使用Vim
			
1.需要去Vim官网下载并安装一个可运行于Win8系统的执行文件(ftp://ftp.vim.org/pub/vim/pc/gvim74.exe). 2.设置PowerShell环境,使能“allow ...