我打算使用其數據需要同步到CloudSearch的DynamoDB。我知道Lambda可以使用,但我想爲此使用Kinesis。所以生產者將是DynamoDB,它將爲表中的每個PUT/DELETE生成數據流。AWS kinesis,如何確保在使用多個分片時訂購的郵件傳遞
我的設計是非常簡單的: (假設消費者接收記錄有序)
- 接收記錄
- 同步到CloudSearch
- (重複)
我有想知道KCL如何確保在消費者端有序交付記錄時,如果有多個碎片存在的話。從API文檔,這就是我理解
- 我們需要創建一個每個碎片迭代器,使用GetShardIterator
- 隨着該碎片迭代器,我可以在一個特定的序列碎片的所有項目。
但是,如果我想要將DynamoDB中的數據同步到CloudSearch,那麼我需要確保所有記錄都以完全相同的順序同步。這裏是我感到困惑的地方:
- 可以將物品同時放入不同的碎片嗎?
- (如果1是真的),那麼如果我有兩個碎片,那麼每個碎片都需要一個ShardIterator?
- (如果1,2爲真)如果我需要確保所有記錄都以有序方式同步,那麼我需要一個線程,它按正確的順序獲取記錄,不是這樣嗎?
- 如果我的想法是正確的,那麼我如何才能實現有序接收兩個碎片?