88.12. 永続的なテールトラッキングを有効にする


この機能を有効にするには、エンドポイント URI で少なくとも次のオプションを設定します。

  • persistentTailTracking オプションを true に設定
  • この consumer の一意の識別子に persistentId オプションを追加して、同じコレクションを多くの consumer で再利用できるようにします

さらに、tailTrackDbtailTrackCollection、および tailTrackField オプションを設定して、ランタイム情報が保存される場所をカスタマイズできます。各オプションの説明については、このページの上部にあるエンドポイントオプションの表を参照してください。

たとえば、次のルートは、departureTime を増加フィールドとして使用し、デフォルトの再生成カーソル遅延を 1000 ミリ秒に設定して、永続的なテールトラッキングをオンにし、cancellationsTracker の下で永続化して、flights.cancellations キャップコレクションから消費します。flights.camelTailTracking の id で、最後に処理された値を lastTrackingValue フィールドに格納します (camelTailTrackinglastTrackingValue はデフォルトです)。

from("mongodb:myDb?database=flights&collection=cancellations&tailTrackIncreasingField=departureTime&persistentTailTracking=true" +
     "&persistentId=cancellationsTracker")
    .id("tailableCursorConsumer2")
    .autoStartup(false)
    .to("mock:test");
Copy to Clipboard Toggle word wrap

以下は、上記と同じ別の例ですが、永続的なテールトラッキングランタイム情報が trackers.camelTrackers コレクションの lastProcessedDepartureTime フィールドに格納されます。

from("mongodb:myDb?database=flights&collection=cancellations&tailTrackIncreasingField=departureTime&persistentTailTracking=true" +
     "&persistentId=cancellationsTracker&tailTrackDb=trackers&tailTrackCollection=camelTrackers" +
     "&tailTrackField=lastProcessedDepartureTime")
    .id("tailableCursorConsumer3")
    .autoStartup(false)
    .to("mock:test");
Copy to Clipboard Toggle word wrap

88.12.1. Change Streams consumer

変更ストリームを使用すると、MongoDB oplog を追跡する複雑さやリスクなしに、アプリケーションはリアルタイムのデータ変更にアクセスできます。アプリケーションは変更ストリームを使用して、コレクションのすべてのデータ変更をサブスクライブし、すぐに対応できます。変更ストリームは集約フレームワークを使用するため、アプリケーションは特定の変更をフィルタリングしたり、通知を自由に変換したりすることもできます。交換本体には、変更の完全なドキュメントが含まれます。

Change Streams Consumer を設定するには、consumerTypedatabasecollection、およびオプションの JSON プロパティー streamFilter を指定して、イベントをフィルタリングする必要があります。その JSON プロパティーは、MongoDB の標準的な $match 集計です。XML DSL 設定を使用して簡単に指定できます。

<route id="filterConsumer">
    <from uri="mongodb:myDb?consumerType=changeStreams&amp;database=flights&amp;collection=tickets&amp;streamFilter={ '$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]} }"/>
    <to uri="mock:test"/>
</route>
Copy to Clipboard Toggle word wrap

Java 設定:

from("mongodb:myDb?consumerType=changeStreams&database=flights&collection=tickets&streamFilter={ '$match':{'$or':[{'fullDocument.stringValue': 'specificValue'}]} }")
    .to("mock:test");
Copy to Clipboard Toggle word wrap
注記

streamFilter 値をプロパティープレースホルダーに外部化することで、エンドポイント URI パラメーターを よりクリーン で読みやすくすることができます。

changeStreams consumer タイプは、次の OUT ヘッダーも返します。

Expand
ヘッダーのキークイック定数説明 (MongoDB API ドキュメントから抜粋)データのタイプ

CamelMongoDbStreamOperationType

MongoDbConstants.STREAM_OPERATION_TYPE

発生した操作のタイプ。値は、insert、delete、replace、update、drop、rename、dropDatabase、invalidate のいずれかです。

String

_id

MongoDbConstants.MONGO_ID

挿入、置換、削除、更新操作 (つまり、CRUD 操作) によって作成または変更されたドキュメントの _id を含むドキュメント。シャードコレクションの場合、ドキュメントの完全なシャードキーも表示されます。_id フィールドは、すでにシャードキーの一部である場合は繰り返されません。

ObjectId

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat