|
Amazon Simple Queue Service(SQS)是一种用于分布式应用的组件之间传递数据的消息队列服务,这些组件可能分布在不同的计算机上,甚至是不同的网络中。利用SQS能够将分布式应用的各个组件以松耦合的方式结合起来,从而创建可靠的Web规模的分布式系统。松耦合的组件之间相对独立性强,系统中任何一个组件的失败都不会影响整个系统的运行。 消息和队列是SQS实现的核心。消息是可以存储到SQS队列中文本数据,可以由应用通过SQS的公共访问接口执行添加、读取、删除操作。队列是消息的容器,提供了消息传递及访问控制的配置选项。SQS是一种支持并发访问的消息队列服务,它支持多个组件并发的操作队列,如向同一个队列发送或者读取消息。消息一旦被某个组件处理,即该消息将被锁定,并且被隐藏,其他组件不能访问和操作此消息,此时队列中的其他消息仍然可以被各个组件访问。 SQS采用分布式架构实现,每一条消息都可能保存在不同的机器中,甚至保存在不同的数据中心里。这种分布式存储策略保证了系统的可靠性,同时也体现出其与中央管理队列的差异,这些差异需要分布式系统设计者和SQS使用者充分理解。首先,SQS并不严格保证消息的顺序,后送入队列的消息可能晚些时候才会可见;其次,分布式队列中有些已经被处理的消息,在一定时间内还存在于其他队列中,因此,同一个消息可能会被处理多次;再次,取消息时不能确保得到所有的消息,可能只得到部分服务器中队列里的消息;最后,消息的传递可能有延迟,不能期望发出的消息马上被其他组件看到。 【出处】虚拟化与云计算小组.虚拟化与云计算,电子工业出版社,2009年10月.
|