2016-09-26 9 views
0

私は2つのコンポーネントを持っています - 1つのクラウドベースのCLSアプリ。もう1つは通常のJavaベースの管理者で、MySQLと話しています。Amazon SQSは、2つのコンポーネント間の同期のための優れたサービスですか?

SQSはFIFOではなく、消費者側でいつメッセージを受け取るかわかりません。また、同じデータの前のメッセージの前に新しいメッセージが表示され、データの矛盾が発生する可能性があります。

これらの2つのシステム間でデータを同期したい場合は、SQSは良いサービスですか?

SQSは一般に、このような同期アップシナリオでは良いツールですか?

答えて

1

SQSは「緩く-FIFO」であるとSQSよくある順序を達成するために、各メッセージにシーケンス情報を追加することをお勧めします。それぞれに シーケンシング情報を置き、あなたのシステムがメッセージの順序を保存することが必要な場合

をメッセージを受信すると、 を注文することができます。 Source

0

アマゾンSQSはちょうどFIFO Queues with Exactly-Once Processing & Deduplicationを得ています:

今日は、SQSがさらに強力かつFIFO(先入れ先出し)キューをサポート と柔軟作っています。 我々は、今二つの領域にキューのこの新しい タイプを展開し、これらのキューは、メッセージが 正確に一度に処理されることを保証するように設計されている初期の2017年

に 多くの人にそれを利用可能にすることを計画していますそれらが送信された順番で、重複なしで。 [...]

[重点鉱山]

強調したように、これらの新しいFIFO SQSキューは[手元にユースケースをカバーするために、より多くのオプションを提供しますが、すべてのSQS regionsではまだ利用できません当初は米国東部(オハイオ州)と米国西部(オレゴン州)のみであった。また、SQS FAQ for FIFO queuesは、どのキュータイプが特定のユースケースに一致するかを決定する前に考慮すべき、標準キューとFIFOキューとの間の顕著な相違を概説しています。

1

特定の順序で到着する必要があるメッセージは、標準のSQSキューの候補ではない可能性があります。ただし、メッセージの送信中にメッセージシーケンスカウンタを設定することはできます。受信側では、シーケンスが正しい場合にメッセージを処理し続けることができます。シーケンス外のメッセージが来た場合は、正しいメッセージが来るまで待ってから、間に入った正しいシーケンスメッセージなどを処理してください。 11月17日

enter image description here

、2016 FIFO Queueは、標準キューを補完し、特定の領域( US East (Ohio)US West (Oregon))に導入されています。メッセージの送受信順序は厳密に保持され、メッセージは一度配信され、消費者が処理して削除するまで利用可能な状態になります。重複はキューに導入されません。 FIFOキューは標準キューと同じAPIアクションを使用し、メッセージの受信と削除、および可視性タイムアウトの変更の仕組みは同じです。ただし、メッセージを送信するときは、メッセージグループIDを指定する必要があります。 enter image description here

関連する問題