34.8. Consumers
コンシューマーにはいくつかのタイプがあります。
- Tailable カーソルコンシューマー
- Change Streams コンシューマー
34.8.1. Tailable カーソルコンシューマー
MongoDB は、*nix システムの tail -f
コマンドのようにカーソルを開いたままにすることで、コレクションから進行中のデータを瞬時に消費するメカニズムを提供します。このメカニズムは、クライアントがスケジュールされた間隔で ping を返して新しいデータを取得するのではなく、新しいデータが利用可能になったときにサーバーがクライアントにプッシュするため、スケジュールされたポーリングよりもはるかに効率的です。また、冗長なネットワークトラフィックも削減されます。
tailable カーソルを使用するための必要条件は 1 つだけです。つまり、コレクションは " 上限付きコレクション " である必要があります。これは、N 個のオブジェクトのみを保持することを意味し、制限に達すると、MongoDB は最初に挿入されたのと同じ順序で古いオブジェクトをフラッシュします。詳細は、http://www.mongodb.org/display/DOCS/Tailable+Cursors を参照してください。
Camel MongoDB コンポーネントは、tailable カーソルコンシューマーを実装しているため、この機能を Camel ルートで使用できるようになります。新しいオブジェクトが挿入されると、MongoDB はそれらを Document
として自然な順序で tailable カーソルコンシューマーにプッシュします。tailable カーソルコンシューマーはそれらをエクスチェンジに変換し、ルートロジックをトリガーします。