第42章 etcd


etcd コンポーネント

etcd は、マシンのクラスター全体でデータを保存する信頼できる方法を提供します。
Maven ユーザーは、このコンポーネントの以下の依存関係を pom.xml に追加する必要があります。
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-etcd</artifactId>
    <!-- use the same version as your Camel core version -->
    <version>x.y.z</version>
</dependency>
Copy to Clipboard Toggle word wrap

URI 形式

etcd:namespace[/path][?options]
Copy to Clipboard Toggle word wrap
namespace は etcd-component が操作する必要のある etcd コンテキストを表し、path は影響を受けるノードを定義するためのオプションの属性です。
サポートされている名前空間は次のとおりです。
  • keys
  • watch
  • stats

オプション

Expand
名前
デフォルト値
説明
uris
コンポーネントが接続する必要のある URI を定義します。
sslContextParameters null カスタム org.apache.camel.util.jsse.SSLContextParameters を使用するには、を使用します。JSSE 設定ユーティリティーの使用 を参照してください。
userName null Basic 認証に使用するユーザー名
password null Basic 認証に使用するパスワード
sendEmptyExchangeOnTimeout false キーを監視するタイムアウトが発生した場合に空のメッセージを送信する(コンシューマーのみ)
recursive false アクションを再帰的に適用する
timeToLive null キーのライフサイクルをミリ秒単位で設定します。
timeout null アクションが完了するまでにかかる最大時間を設定します。

Headers

Expand
名前タイプ説明
CamelEtcdAction java.lang.String 実行するアクション。サポートされる値は set、delete、deleteDir、get です。
CamelEtcdNamespace java.lang.String
エクスチェンジが生成/処理された etcd コンテキスト
CamelEtcdPath java.lang.String
キー namespace の場合、これは URI エンドポイントからのパスが使用される場合に、アクションの対象となるノードを判別するために使用されます。統計および監視名前空間の場合、処理されたノード beign のパスを含む
CamelEtcdTimeout java.lang.Long アクションが完了するまでにかかる最大時間を設定します。存在しない場合は、timeout オプションが考慮されます。
CamelEtcdTtl java.lang.Integer キーのライフサイクルをミリ秒単位で設定します。存在しない場合は、timeToLive オプションが考慮されます。
CamelEtcdRecursive java.lang.Boolean アクションを再帰的に適用するには、以下を行います。存在しない場合は、recursive オプションが考慮されます。

キー namespace の例:

CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
    public void configure() {
       from("direct:keys-set")
            .to("etcd:keys")
                .to("log:camel-etcd?level=INFO");
    }
});

Map<String, Object> headers = new HashMap<>();
headers.put(EtcdConstants.ETCD_ACTION, EtcdConstants.ETCD_KEYS_ACTION_SET);
headers.put(EtcdConstants.ETCD_PATH, "/camel/etcd/myKey");
 
ProducerTemplate template = context.createProducerTemplate();
template.sendBodyAndHeaders("direct:keys-set", "camel-etcd", headers);
Copy to Clipboard Toggle word wrap

統計 namespace の例:

CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
    public void configure() {
       from("etcd:stats/leader?consumer.delay=50&consumer.initialDelay=0")
           .to("log:etcd-leader-stats?level=INFO");
       from("etcd:stats/self?consumer.delay=50&consumer.initialDelay=0")
           .to("log:etcd-self-stats?level=INFO");
       from("etcd:stats/store?consumer.delay=50&consumer.initialDelay=0")
           .to("log:etcd-store-stats?level=INFO");
    }
});
Copy to Clipboard Toggle word wrap

namespace の例を監視します。

CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
    public void configure() {
       from("etcd:watch/recursive?recursive=true")
        .marshall().json()
        .to("log:etcd-event?level=INFO")
    }
});
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat