第27章 CouchDB


Camel CouchDB コンポーネント

Camel 2.11 から利用可能
couchdb: コンポーネントを使用すると、CouchDB インスタンスをメッセージのプロデューサーまたはコンシューマーとして扱うことができます。軽量の LightCouch API を使用すると、この Camel コンポーネントには以下の機能があります。
  • コンシューマーとして、は、挿入、更新、および削除をメッセージとして Camel ルートに公開するために couch changeset を監視します。
  • プロデューサーとして、はドキュメントを保存または更新できます。
  • 複数のインスタンスにまたがる複数のデータベースなど、必要な数だけエンドポイントをサポートできます。
  • 削除時にのみイベントトリガーを持つことができ、挿入/更新または all (デフォルト)のみを挿入します。
  • sequenceId、ドキュメントリビジョン、ドキュメント ID、および HTTP メソッドタイプに設定されたヘッダー。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-couchdb</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

URI 形式

couchdb:http://hostname[:port]/database?[options]
Copy to Clipboard Toggle word wrap
hostname は、実行中の couchdb インスタンスのホスト名です。port はオプションであり、指定されていない場合、デフォルトは 5984 に設定されます。

オプション

Expand
プロパティー デフォルト 説明
削除 true ドキュメントの削除はイベントとして公開されます。
updates true ドキュメントの挿入/更新がイベントとして公開される
heartbeat 30000 ソケットを存続させるための空のメッセージを送信する頻度
createDatabase true データベースが存在しない場合は作成します。
username null 認証されたデータベースの場合のユーザー名
password null 認証されたデータベースのパスワード

Headers

以下のヘッダーは、メッセージトランスポート中にエクスチェンジに設定されます。
Expand
プロパティー
CouchDbDatabase メッセージの元となったデータベース
CouchDbSeq 更新/削除メッセージの couchdb 変更セットシーケンス番号
CouchDbId couchdb ドキュメント ID
CouchDbRev couchdb ドキュメントリビジョン
CouchDbMethod メソッド(削除/更新)
メッセージが受信されると、ヘッダーはコンシューマーによって設定されます。また、プロデューサーは挿入/更新が行われるとダウンストリームプロセッサーのヘッダーも設定します。プロデューサーの前に設定されたヘッダーは無視されます。たとえば、CouchDbId をヘッダーとして設定すると、挿入の ID として使用されず、ドキュメントの ID は引き続き使用されます。

メッセージボディー

コンポーネントは、挿入するドキュメントとしてメッセージボディーを使用します。ボディーが String のインスタンスである場合は、挿入前に GSON オブジェクトにマーシャリングされます。つまり、文字列が有効な JSON である必要があります。そうでないと、挿入/更新に失敗します。ボディーが com.google.gson.JsonElement のインスタンスである場合は、そのまま挿入されます。そうしないと、プロデューサーはサポートされていないボディータイプの例外を出力します。

サンプル

たとえば、ローカルで実行している CouchDB インスタンスからすべての挿入、更新、および削除を 9999 ポートで使用する場合は、以下を使用できます。
from("couchdb:http://localhost:9999").process(someProcessor);
Copy to Clipboard Toggle word wrap
削除のみに関心がある場合は、以下を使用できます。
from("couchdb:http://localhost:9999?updates=false").process(someProcessor);
Copy to Clipboard Toggle word wrap
メッセージをドキュメントとして挿入する場合は、エクスチェンジのボディーが使用されます。
from("someProducingEndpoint").process(someProcessor).to("couchdb:http://localhost:9999")
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat