173.6. 例


173.6.1. JGroups クラスターへの (からの) メッセージの送信 (受信)

JGroups クラスターにメッセージを送信するには、以下のスニペットで示されているように、プロデューサーエンドポイントを使用します。

from("direct:start").to("jgroups:myCluster");
...
producerTemplate.sendBody("direct:start", "msg")

上記のスニペットからメッセージを受信するには (同じ物理マシンまたは別の物理マシンで)、以下のコードフラグメントで示されているように、特定のクラスターからのメッセージをリッスンします。

mockEndpoint.setExpectedMessageCount(1);
mockEndpoint.message(0).body().isEqualTo("msg");
...
from("jgroups:myCluster").to("mock:messagesFromTheCluster");
...
mockEndpoint.assertIsSatisfied();

173.6.2. クラスタービューの変更通知を受け取る

以下のスニペットは、クラスターメンバーシップの変更に関する通知をリッスンするコンシューマーエンドポイントを作成する方法を示しています。デフォルトでは、通常のメッセージのみがエンドポイントによって消費されます。

mockEndpoint.setExpectedMessageCount(1);
mockEndpoint.message(0).body().isInstanceOf(org.jgroups.View.class);
...
from("jgroups:clusterName?enableViewMessages=true").to(mockEndpoint);
...
mockEndpoint.assertIsSatisfied();

173.6.3. クラスター内にシングルトンルートを保持する

以下のスニペットは、キャメルコンテキストのクラスターにシングルトンコンシューマールートを保持する方法を示しています。マスターノードが停止するとすぐに、スレーブの 1 つが新しいマスターとして選出され、開始されます。この特定の例では、アドレス ` http://localhost:8080/orders` でリクエストをリッスンするシングルトン jetty インスタンスを維持したいと考えています。

import static java.util.concurrent.TimeUnit.SECONDS;
import static org.apache.camel.component.jgroups.JGroupsExpressions.delayIfContextNotStarted;
import static org.apache.camel.component.jgroups.JGroupsFilters.dropNonCoordinatorViews;
...
from("jgroups:clusterName?enableViewMessages=true").
  filter(dropNonCoordinatorViews()).
  threads().delay(delayIfContextNotStarted(SECONDS.toMillis(5))). // run in separated and delayed thread. Delay only if the context hasn't been started already.
  to("controlbus:route?routeId=masterRoute&action=start&async=true");

from("jetty:http://localhost:8080/orders").routeId("masterRoute").autoStartup(false).to("jms:orders"); 
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.