第92章 Krati


Krati コンポーネント

Camel 2.9 以降で利用可能
このコンポーネントでは、Camel 内で krati データストアとデータセットを使用できます。Krati は、レイテンシーが非常に低く、スループットが高いシンプルな永続データストアです。これは、設定、パフォーマンス、および JVM ガべージコレクションの調整をほとんどせずに、読み取り/書き込み集約型アプリケーションとの統合を容易にするように設計されています。
Camel は、krati datastore_(key/value engine)_ のプロデューサーとコンシューマーを提供します。また、重複したメッセージをフィルターリングするべき等リポジトリーも提供します。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-krati</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

URI 形式

krati:[the path of the datastore][?options]
Copy to Clipboard Toggle word wrap
データストアのパス は、krati がデータストアに使用するフォルダーの相対パスです。
URI にクエリーオプションは ?option=value&option=value&.. の形式で追加できます。

Krati URI オプション

Expand
名前 デフォルト値 説明
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 オプションをすべて上書きできます。

データストアのメッセージヘッダー

Expand
ヘッダー 説明
CamelKratiOperation
データストアで実行される操作。有効なオプションは です。
  • CamelKratiAdd
  • CamelKratiGet
  • CamelKratiDelete
  • CamelKratiDeleteAll
CamelKratiKey キー。
CamelKratiValue 値。

使用例

例 1: データストアへの配置。

この例では、データストア内に任意のメッセージを保存する方法を示します。
from("direct:put").to("krati:target/test/producertest");
Copy to Clipboard Toggle word wrap
上記の例では、メッセージのヘッダーを使用して、任意の URI パラメーターを上書きできます。上記の例は、xml を使用してルートを定義する方法を示しています。
        <route>
            <from uri="direct:put"/>
            <to uri="krati:target/test/producerspringtest"/>
        </route>
Copy to Clipboard Toggle word wrap

例 2: データストアの取得/読み取り

この例では、データストアのコントラネットを読み取る方法を説明します。
from("direct:get")
    .setHeader(KratiConstants.KRATI_OPERATION, constant(KratiConstants.KRATI_OPERATION_GET))
    .to("krati:target/test/producertest");
Copy to Clipboard Toggle word wrap
上記の例では、メッセージのヘッダーを使用して、任意の URI パラメーターを上書きできます。上記の例は、xml を使用してルートを定義する方法を示しています。
<route>
     <from uri="direct:get"/>
     <to uri="krati:target/test/producerspringtest?operation=CamelKratiGet"/>
</route>
Copy to Clipboard Toggle word wrap

例 3: データストアの使用

この例では、指定されたデータストアの下にあるすべてのアイテムを消費します。
    from("krati:target/test/consumertest")
        .to("direct:next");
Copy to Clipboard Toggle word wrap
以下に示すように、xml を使用して同じゴールを実現できます。
<route>
    <from uri="krati:target/test/consumerspringtest"/>
    <to uri="mock:results"/>
</route>
Copy to Clipboard Toggle word wrap

Idempotent リポジトリー

前述のように、このコンポーネントは重複メッセージのフィルターリングに使用できるリポジトリーとべき等リポジトリーも提供します。
from("direct://in").idempotentConsumer(header("messageId"), new KratiIdempotentRepositroy("/tmp/idempotent").to("log://out");
Copy to Clipboard Toggle word wrap

その他の参考資料

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat