Amazon SQS是两个组件之间同步的良好服务吗?

时间:2016-09-26 11:49:08

标签: amazon-web-services amazon-sqs

我有两个组件 - 一个基于云的CLS应用程序。另一个是普通的基于Java的管理员与MySQL交谈。

考虑到SQS不是FIFO,我不确定何时会在消费者端收到消息。此外,我可能会在上一条消息之前收到有关数据不一致的相同数据的新消息

如果我想在这两个系统之间同步数据,那么SQS是一项很好的服务吗?

SQS通常是此类同步方案的好工具吗?

3 个答案:

答案 0 :(得分:1)

SQS是"松散的FIFO"并且SQS FAQ建议在每条消息中添加排序信息以实现排序:

  

如果您的系统需要保留邮件的顺序,请放置   在每条消息中排序信息,以便可以订购消息   当他们被收到。 Source

答案 1 :(得分:1)

需要以特定顺序到达的邮件可能不适合标准US East (Ohio)队列。但是,您可以在发送消息时设置消息序列计数器。在接收端,如果顺序正确,您可以继续处理消息。如果出现无序消息,请等到正确的消息出现,然后处理正确的序列消息和其他消息。

enter image description here

2016年11月17日,FIFO Queue已在特定区域(US West (Oregon)public class RentGameDialogController extends RentalStoreGUIController)中引入,以补充标准队列。严格保留发送和接收消息的顺序,并且消息一次传送并保持可用,直到消费者处理并删除它为止;重复项不会引入队列。 FIFO队列使用与标准队列相同的API操作,接收和删除消息以及更改可见性超时的机制是相同的。但是,发送邮件时,必须指定邮件组ID。 enter image description here

答案 2 :(得分:0)

Amazon SQS刚刚获得FIFO Queues with Exactly-Once Processing & Deduplication

  

今天,我们正在通过支持使SQS更加强大和灵活   用于FIFO(先进先出)队列。 我们推出这个新的   现在两个地区的队列类型,并计划在其中提供   许多其他人在2017年初。

     

这些队列旨在保证处理邮件   正好一次,按照发送的顺序,没有重复。   [...]

     

[强调我的]

正如强调的那样,这些新的FIFO SQS队列提供了更多选项来涵盖手头的用例,但尚未在所有SQS regions中提供[最初仅在美国东部(俄亥俄州)和美国西部(俄勒冈州)] 。此外,SQS FAQ for FIFO queues概述了在确定哪个队列类型与特定用例匹配之前应考虑的标准队列和FIFO队列之间的显着差异。