第154章 Ignite Cache コンポーネント
Camel バージョン 2.17 以降で利用可能
Ignite Cache エンドポイントは、Ignite Cache との対話を可能にする camel-ignite エンドポイントの 1 つです。これにより、プロデューサー (Ignite キャッシュでキャッシュ操作を呼び出すため) とコンシューマー (継続的なクエリーからの変更を使用するため) の両方が提供されます。
キャッシュ値は常にメッセージのボディーですが、キャッシュキーは常に IgniteConstants.IGNITE_CACHE_KEY
メッセージヘッダーに格納されます。
エンドポイント URI で固定操作を設定する場合でも、IgniteConstants.IGNITE_CACHE_OPERATION
メッセージヘッダーを設定することでエクスチェンジごとに変更できます。
154.1. オプション
Ignite Cache コンポーネントは、以下に示す 4 個のオプションをサポートしています。
名前 | 説明 | デフォルト | タイプ |
---|---|---|---|
ignite (Common) | Ignite インスタンスを設定します。 | Ignite | |
configurationResource (Common) | 設定をロードするリソースを設定します。URI、文字列 (URI)、または InputStream のいずれかです。 | Object | |
igniteConfiguration (Common) | ユーザーがプログラムによる IgniteConfiguration を設定できるようにします。 | IgniteConfiguration | |
resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
Ignite Cache エンドポイントは、URI 構文を使用して設定されます。
ignite-cache:cacheName
パスおよびクエリーパラメーターを使用します。
154.1.1. パスパラメーター (1 個のパラメーター):
名前 | 説明 | デフォルト | タイプ |
---|---|---|---|
cacheName | 必須 キャッシュ名。 | String |
154.1.2. クエリーパラメーター (16 個のパラメーター):
名前 | 説明 | デフォルト | タイプ |
---|---|---|---|
propagateIncomingBodyIfNo ReturnValue (Common) | 基になる Ignite 操作の戻り値の型が void の場合に、入力ボディーを伝播するかどうかを設定します。 | true | boolean |
treatCollectionsAsCache Objects (Common) | コレクションをキャッシュオブジェクトとして扱うか、アイテムのコレクションとして扱うかを設定し、挿入/更新/計算などを行います。 | 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 つのバッチで受信された場合でも、各更新を個別のエクスチェンジにパックするかどうか。連続クエリーコンシューマーによってのみ使用されます。 | true | boolean |
pageSize (consumer) | ページサイズ。連続クエリーコンシューマーによってのみ使用されます。 | 1 | int |
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 |
operation (producer) | 呼び出すキャッシュ操作。設定可能な値: GET、PUT、REMOVE、SIZE、REBALANCE、QUERY、CLEAR。 | IgniteCacheOperation | |
synchronous (advanced) | 同期処理を厳密に使用するか、Camel が非同期処理を使用できるかどうかを設定します (サポートされている場合)。 | false | boolean |
154.1.3. 使用されるヘッダー
このエンドポイントは、次のヘッダーを使用します。
ヘッダー名 | 定数 | 想定されるタイプ | 説明 |
---|---|---|---|
CamelIgniteCacheKey | IgniteConstants.IGNITE_CACHE_KEY | String | メッセージ本文のエントリー値のキャッシュキー。 |
CamelIgniteCacheQuery | IgniteConstants.IGNITE_CACHE_QUERY | Query | QUERY 操作を呼び出すときに実行する (プロデューサー) クエリー。 |
CamelIgniteCacheOperation | IgniteConstants.IGNITE_CACHE_OPERATION | IgniteCacheOperation 列挙 | 実行するキャッシュ操作を動的に変更できます (プロデューサー)。 |
CamelIgniteCachePeekMode | IgniteConstants.IGNITE_CACHE_PEEK_MODE | CachePeekMode enum | SIZE 操作の実行時にキャッシュピークモードを動的に変更できます。 |
CamelIgniteCacheEventType | IgniteConstants.IGNITE_CACHE_EVENT_TYPE | int (EventType 定数) | このヘッダーは、連続クエリーコンシューマーを使用する場合に受信したイベントタイプを伝達します。 |
CamelIgniteCacheName | IgniteConstants.IGNITE_CACHE_NAME | String | このヘッダーには、連続クエリーイベントを受信したキャッシュ名 (consumer) が含まれます。プロデューサー操作が実行されるキャッシュを動的に変更することはできません。そのためには EIP を使用します (受信者リスト、動的ルーターなど)。 |
CamelIgniteCacheOldValue | IgniteConstants.IGNITE_CACHE_OLD_VALUE | Object | このヘッダーは、入力キャッシュイベント (consumer) で渡されるときに、古いキャッシュ値を保持します。 |