第32章 マスター
コンシューマーのみがサポートされている
Camel-Master エンドポイントは、クラスターの単一のコンシューマーのみが指定のエンドポイントから消費されるようにする方法を提供します。その JVM が停止した場合に自動フェイルオーバーを使用します。
これは、同時消費をサポートしていないか、商用または安定性の理由が原因で、レガシーバックエンドから消費する必要がある場合に非常に便利です。
32.1. マスターエンドポイントの使用 リンクのコピーリンクがクリップボードにコピーされました!
camel エンドポイントの前に master:someName: を付けます。ここで、someName は論理名で、マスターロックの取得に使用されます。
from("master:cheese:jms:foo").to("activemq:wine");
from("master:cheese:jms:foo").to("activemq:wine");
この例では、マスターコンポーネントを使用することで、クラスター内の任意の時点でルートが 1 つのノードでのみアクティブになるようにします。そのため、クラスターに 8 つのノードがある場合、マスターコンポーネントは 1 つのルートをリーダーとして選び、このルートのみがアクティブになるので、このルートのみが jms:foo
からのメッセージを消費します。このルートが停止または予期しない終了の場合、マスターコンポーネントはこれを検出し、別のノードがアクティブになるように再度検出します。これにより、アクティブになり、jms:foo
からのメッセージの消費が開始されます。
Apache ActiveMQ 5.x には、排他的コンシューマー と呼ばれるこのような機能があります。