5

監視対象の mongo エンティティが変更/追加されると、mongo はこれらの変更を変更ストリームに記録し、アプリケーションがリッスンできることを理解しています。

単一の変更ストリーム イベントがクリアされた場合、変更ストリームの最大容量はどれくらいですか。最大容量の制限により、ログがサブスクライバーに通知される前に変更ストリームからログが削除されるという否定的なシナリオはありますか?

公式ページでそのようなデータを見つけることができませんでした: https://docs.mongodb.com/manual/changeStreams/

4

1 に答える 1

7

変更ストリームは、そのデータの基礎として oplog を使用しています。したがって、「最大容量」は oplog のサイズに基づいています ( SERVER-13932を参照)。

変更ストリームをフォローしている限り、リアルタイムで変更が通知されます。この場合、oplog のサイズは問題ではありません。変更が発生したときにそれを使用しているためです。

ただし、変更ストリームは、oplog 内の特定のタイムスタンプを指す再開トークンを使用して再開できます。oplog がロールオーバーすると、このレジューム トークンは無効になります。無効な再開トークンを使用して変更ストリームを再開しようとすると、エラーが発生します。

resume of change stream was not possible, as the resume token was not found. {_data: <the invalid resume token>}

この時点で、どのように進めるかはアプリケーション次第です。

于 2019-06-05T01:40:51.323 に答える