はい。
複数のKinesisコンシューマアプリケーションを使用できます。あなたは、「最初のアプリ」で、それはDynamoDBの「最初のアプリ・テーブル」内の位置です保存することができます2.
- まずコンシューマアプリケーションを(私はそれがカフカの「コンシューマ・グループ」だと思う?)持っているとしましょう。それは、あなたが望むだけ多くのノード(ec2インスタンス)を持つことができます。
- 第2のコンシューマアプリケーションも同じストリームで動作し、別のDynamoDBテーブルにその位置を格納することができます。「second-app-table」と言いましょう。
各テーブルには、「アプリケーションYのシャードXで最後に処理された位置は何ですか」という情報が含まれます。したがって、2つのアプリケーションでは、同じ場所のシャードのチェックポイントが別の場所に保存されるため、独立しています。
摂取率については、KCLを使用するコンシューマアプリケーションでは「idleTimeBetweenReadsInMillis」という値があります。これは、Amazon Kinesis API for Get操作のポーリング間隔です。たとえば、最初のアプリケーションは "2000"のポーリング間隔を持つことができるので、ストリームのシャードを2秒ごとにポーリングして、新しいレコードが来たかどうかを確認します。
私はカフカをよく知っていませんが、私が覚えている限りです。 Kineskaの "パーティション"はKinesisの "シャード"、同様にKafkaの "オフセット"はKinesisの "sequence number"です。 Kinesis Consumer Libraryは、保存されたシーケンスに "checkpoint"という用語を使用します。あなたが言ったように、概念は似ています。
出典
2017-03-16 11:45:26
az3
これは素晴らしいことです。正確に私が探しているもの。 –
「Checkpoint Kinesis」のグーグルが私のフォローアップの質問に答えました。 –