Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.第92章 Krati
Krati コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.9 以降で利用可能
このコンポーネントでは、Camel 内で krati データストアとデータセットを使用できます。Krati は、レイテンシーが非常に低く、スループットが高いシンプルな永続データストアです。これは、設定、パフォーマンス、および JVM ガべージコレクションの調整をほとんどせずに、読み取り/書き込み集約型アプリケーションとの統合を容易にするように設計されています。
Camel は、krati datastore_(key/value engine)_ のプロデューサーとコンシューマーを提供します。また、重複したメッセージをフィルターリングするべき等リポジトリーも提供します。
Maven ユーザーは、このコンポーネントの
pom.xml
に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
krati:[the path of the datastore][?options]
krati:[the path of the datastore][?options]
データストアのパス は、krati がデータストアに使用するフォルダーの相対パスです。
URI にクエリーオプションは
?option=value&option=value&.. の形式で追加できます。
Krati URI オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
名前 | デフォルト値 | 説明 |
---|---|---|
operation
|
CamelKratiPut | プロデューサーのみデータストアに対して実行される操作のタイプを指定します。許可される値は CamelKratiPut、CamelKratiGet、CamelKratiDelete、および CamelKratiDeleteAll です。 |
initialCapacity
|
100 | ストアの inital capcity。 |
keySerializer
|
KratiDefaultSerializer | キーのシリアライズに使用されるシリアライザーシリアライザー。 |
valueSerializer
|
KratiDefaultSerializer | 値をシリアライズするために使用されるシリアライザーシリアライザー。 |
segmentFactory
|
ChannelSegmentFactory | 使用するセグメントファクトリー。許可されるインスタンスクラス:ChannelSegmentFactory、MemorySegmentFactory、MappedSegmentFactory および WriteBufferSegmentFactory。 |
hashFunction
|
FnvHashFunction | 使用するハッシュ関数。許可されるインスタンスクラス:FnvHashFunction,Fnv1Hash32,FnvHash64,Fnv1aHash32,Fnv1aHash64, JenkisHashFunction, MurmurHashFunctiom |
maxMessagesPerPoll
|
Camel 2.10.5/2.11.1: 1 回のポーリングで受信できるメッセージの最大数。これを使用して、大量のデータの読み取りを回避し、メモリーを過剰に消費することができます。 |
プロデューサーエンドポイントの場合、適切なヘッダーをメッセージに渡すことで、上記の URI オプションをすべて上書きできます。
データストアのメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ヘッダー | 説明 |
---|---|
CamelKratiOperation
|
データストアで実行される操作。有効なオプションは です。
|
CamelKratiKey
|
キー。 |
CamelKratiValue
|
値。 |
使用例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
例 1: データストアへの配置。 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この例では、データストア内に任意のメッセージを保存する方法を示します。
from("direct:put").to("krati:target/test/producertest");
from("direct:put").to("krati:target/test/producertest");
上記の例では、メッセージのヘッダーを使用して、任意の URI パラメーターを上書きできます。上記の例は、xml を使用してルートを定義する方法を示しています。
<route> <from uri="direct:put"/> <to uri="krati:target/test/producerspringtest"/> </route>
<route>
<from uri="direct:put"/>
<to uri="krati:target/test/producerspringtest"/>
</route>
例 2: データストアの取得/読み取り リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この例では、データストアのコントラネットを読み取る方法を説明します。
from("direct:get") .setHeader(KratiConstants.KRATI_OPERATION, constant(KratiConstants.KRATI_OPERATION_GET)) .to("krati:target/test/producertest");
from("direct:get")
.setHeader(KratiConstants.KRATI_OPERATION, constant(KratiConstants.KRATI_OPERATION_GET))
.to("krati:target/test/producertest");
上記の例では、メッセージのヘッダーを使用して、任意の URI パラメーターを上書きできます。上記の例は、xml を使用してルートを定義する方法を示しています。
<route> <from uri="direct:get"/> <to uri="krati:target/test/producerspringtest?operation=CamelKratiGet"/> </route>
<route>
<from uri="direct:get"/>
<to uri="krati:target/test/producerspringtest?operation=CamelKratiGet"/>
</route>
例 3: データストアの使用 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この例では、指定されたデータストアの下にあるすべてのアイテムを消費します。
from("krati:target/test/consumertest") .to("direct:next");
from("krati:target/test/consumertest")
.to("direct:next");
以下に示すように、xml を使用して同じゴールを実現できます。
<route> <from uri="krati:target/test/consumerspringtest"/> <to uri="mock:results"/> </route>
<route>
<from uri="krati:target/test/consumerspringtest"/>
<to uri="mock:results"/>
</route>
Idempotent リポジトリー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
前述のように、このコンポーネントは重複メッセージのフィルターリングに使用できるリポジトリーとべき等リポジトリーも提供します。
from("direct://in").idempotentConsumer(header("messageId"), new KratiIdempotentRepositroy("/tmp/idempotent").to("log://out");
from("direct://in").idempotentConsumer(header("messageId"), new KratiIdempotentRepositroy("/tmp/idempotent").to("log://out");
その他の参考資料 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!