第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>
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
etcd:namespace[/path][?options]
namespace は etcd-component が操作する必要のある etcd コンテキストを表し、path は影響を受けるノードを定義するためのオプションの属性です。
サポートされている名前空間は次のとおりです。
keyswatchstats
オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
|
名前
|
デフォルト値
|
説明
|
|---|---|---|
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 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | タイプ | 説明 |
|---|---|---|
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);
統計 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");
}
});
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")
}
});