affiliates. Producer Messageを書き込む役割 • 同じKeyのMessageは同一のPartitionに配信される • Keyを指定することで、Partition内での配信順序を保 持できる Consumer Messageを読み出す役割 • Messageが作成された順に、Messageを読み出す • Partitionが複数ある場合は、Messageの順序は保証 されない • どこまでMessageを読みだしたかはOffsetを用いて判断 0 1 2 0 1 0 Stream Producer A PutMessage API GetMessage API Producer B Producer C Consumer A Consumer B Consumer C Partition0 Partition1 Partition2 Key0 Value Key2 Value Key1 Value Key2 Value Key0 Value
1. Producerは、デフォルトのメッセージ保持時間でメッセージをキューに送信 Producerは、キュー サービスがメッセージを受信して保存したという確認を受け取る 2. Consumer A は、表示タイムアウト A 内に処理することになっているメッセージを受信 3. Consumer B は、利用可能な唯一のメッセージがConsumer A によって既に消費されているため、何も受信しない 4. Consumer A は表示タイムアウト A 内にメッセージを処理できなかったため、メッセージを更新して表示タイムアウトを延長 5. Consumer B は再度メッセージを受信しようとするが、利用可能な唯一のメッセージがConsumer A によって消費および拡張されたため、受信できない 6. 延長された表示タイムアウトが経過すると、メッセージが再び表示されるように 7. Consumer B は 3 回目のメッセージの受信を試みる Consumer B はメッセージを受信 これは、表示タイムアウト B 内に処理することになる 8. Consumer A はメッセージを受信しようとするが、Consumer B がメッセージを消費したため、何も受信しない。Consumer A は、メッセージの表示タイムアウトを延長したり、メッセー ジを削除したりすることができなくなる 9. Consumer B はメッセージを正常に処理し、キューからメッセージを削除しようとする。Consumer B は、メッセージが完全に削除されたという確認を受け取り、このメッセージは他の Consumerに配信されることはない