そこで、いくつかのドキュメントを読み、ここで皆さんから多くの助けを得た後、最終的にエンドポイントを動的に選択する受信者リスト (動的受信者リスト) を実装しました。
私のコードでは、MainApp_A は 10 秒ごとにレポートを生成します。レポートを 1 つずつ送信するのではなく、すべてのサーバーに同時に送信する必要があります。したがって、私は次のルートを開発しました。
MainApp_A
main.addRouteBuilder(new RouteBuilder(){
@Override
public void configure() throws Exception {
from("direct:start").multicast().parallelProcessing()
.beanRef("recipientListBean", "route").end()
.log("${body}");
}
});
RecipientListBean
@RecipientList
public Set<String> route(String body) {
return servers; //returns a collection of several severs
}
マルチキャスト パターンと動的ルートのドキュメントも確認しました。
今、いくつか質問があり、混乱しています。だから私はいくつかの質問があります:
- 受信者のダイナミック リストは、単にマルチキャスト パターンとダイナミック ルート パターンの接合部ですか?
- multicast() 呼び出しだけでは、純粋にシーケンシャルですよね? multicast() と recipientList() の使用の違いは何ですか?
- multicast() と recipientList() の両方を一致させるには、parallelProcessing() を使用する必要があります。私の場合、どちらがより効率的ですか?