第147章 ignite Cache コンポーネント
Camel バージョン 2.17 から利用可能
Ignite Cache エンドポイントは camel-ignite エンドポイントの 1 つで、Ignite Cache と対話できます。これは、プロデューサー(Ignite キャッシュでキャッシュ操作を呼び出す)とコンシューマー(継続的なクエリーから変更を消費する)の両方を提供します。
キャッシュ値は常にメッセージのボディーですが、キャッシュキーは常に IgniteConstants.IGNITE_CACHE_KEY
メッセージヘッダーに保存されます。
エンドポイント URI で固定操作を設定していても、IgniteConstants.IGNITE_CACHE_OPERATION
メッセージヘッダーを設定することで、交換ごとに異なる場合があります。
147.1. オプション
Ignite Cache コンポーネントは、以下に示す 4 つのオプションをサポートします。
Name | 説明 | デフォルト | Type |
---|---|---|---|
ignite (common) | Ignite インスタンスを設定します。 | ignite | |
configurationResource (common) | 設定の読み込み元となるリソースを設定します。URI、String(URI)、または InputStream を指定できます。 | オブジェクト | |
igniteConfiguration (common) | ユーザーがプログラムによる IgniteConfiguration を設定できるようにします。 | IgniteConfiguration | |
resolveProperty Placeholders (advanced) | 起動時にコンポーネント自体がプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
Ignite Cache エンドポイントは、URI 構文を使用して設定します。
ignite-cache:cacheName
以下の path パラメーターおよびクエリーパラメーターを使用します。
147.1.1. パスパラメーター(1 パラメーター):
Name | 説明 | デフォルト | Type |
---|---|---|---|
cacheName | 必須。キャッシュ名。 | 文字列 |
147.1.2. クエリーパラメーター(16 パラメーター):
Name | 説明 | デフォルト | Type |
---|---|---|---|
propagateIncomingBodyIfNo ReturnValue (common) | 基礎となる Ignite 操作の戻り値タイプが void の場合には、受信ボディーを伝播するかどうかを設定します。 | true | boolean |
treatCollectionsAsCache オブジェクト (共通) | コレクションをキャッシュオブジェクトとして処理するか、または挿入/更新/コンピュートなどを行う項目のコレクションとして処理するかどうかを設定します。 | false | boolean |
autoUnsubscribe (consumer) | 継続的なクエリーコンシューマーで自動サブスクライブが有効になっているかどうか。 | true | boolean |
bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。デフォルトでは、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | false | boolean |
fireExistingQueryResults (consumer) | クエリーに一致する既存の結果を処理するかどうか。継続的なクエリーコンシューマーの初期化に使用されます。 | false | boolean |
oneExchangePerUpdate (consumer) | 1 つのバッチで複数の更新が受信された場合でも、個別の Exchange で各更新をパッケージ化するかどうか。継続的なクエリーコンシューマーによってのみ使用されます。 | true | boolean |
pageSize (consumer) | ページサイズ。継続的なクエリーコンシューマーによってのみ使用されます。 | 1 | int |
クエリー (コンシューマー) | 実行する Query は、これを必要とする操作および Continuous Query Consumer についてのみ必要です。 | Object>> | |
remoteFilter (consumer) | 継続的なクエリーコンシューマーによってのみ使用されるリモートフィルター。 | Object> | |
timeInterval (consumer) | 継続的なクエリーコンシューマーの時間間隔。 | 0 | Long |
exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されていないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | ExchangePattern | |
cachePeekMode (producer) | CachePeekMode は、これを必要とする操作(リンク IgniteCacheOperationSIZE)にのみ必要です。 | ALL | CachePeekMode |
failIfInexistentCache (producer) | キャッシュが存在しない場合に初期化に失敗するかどうか。 | false | boolean |
操作 (プロデューサー) | 呼び出すキャッシュ操作。使用できる値は GET、PUT、REMOVE、SIZE、REBALANCE、QUERY、CLEAR です。 | IgniteCacheOperation | |
同期 (詳細) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるようにするかを設定します(サポートされている場合)。 | false | boolean |
147.1.3. 使用されるヘッダー
このエンドポイントは、以下のヘッダーを使用します。
ヘッダー名 | Constant | 想定されるタイプ | 説明 |
---|---|---|---|
CamelIgniteCacheKey | IgniteConstants.IGNITE_CACHE_KEY | 文字列 | メッセージボディーのエントリー値のキャッシュキー。 |
CamelIgniteCacheQuery | IgniteConstants.IGNITE_CACHE_QUERY | クエリー | QUERY 操作の呼び出し時に実行するクエリー(プロデューサー)。 |
CamelIgniteCacheOperation | IgniteConstants.IGNITE_CACHE_OPERATION | IgniteCacheOperation enum | キャッシュ操作を動的に変更して実行する(producer)ことができます。 |
CamelIgniteCachePeekMode | IgniteConstants.IGNITE_CACHE_PEEK_MODE | CachePeekMode enum | SIZE 操作の実行時にキャッシュ peek モードを動的に変更できます。 |
CamelIgniteCacheEventType | IgniteConstants.IGNITE_CACHE_EVENT_TYPE | int(EventType constants) | このヘッダーには、継続的なクエリーコンシューマーを使用する場合に受信したイベントタイプが含まれます。 |
CamelIgniteCacheName | IgniteConstants.IGNITE_CACHE_NAME | 文字列 | このヘッダーには、継続的なクエリーイベントが受信されたキャッシュ名(コンシューマー)があります。プロデューサー操作を実行するキャッシュを動的に変更することはできません。このために EIP を使用します(受信者リスト、動的ルーターなど)。 |
CamelIgniteCacheOldValue | IgniteConstants.IGNITE_CACHE_OLD_VALUE | オブジェクト | このヘッダーには、受信キャッシュイベント(コンシューマー)に渡されると古いキャッシュ値が含まれます。 |