私の質問を明確にします。
html を提供するフロントエンドと、フロントエンドにデータを提供するバックエンドの 2 つのシステムを統合するタスクがあります。バックエンドには非常に大きな REST API があるため、複数のルートを使用する必要があります。単一のキャメル コンテキストを使用し、すべてのルートをそれにラップすることを計画しました。
<camelContext xmlns="http://activemq.apache.org/camel/schema/spring">
<from uri="direct:data"/>
<to uri="ahc:http://localhost/data"/>
<!--And so on. More than 70 routes-->
</camelContext>
次に、 Hiding middleware の記事でアドバイスされているように、サービス メソッドで @Produce アノテーションを使用してルートを呼び出すことを計画しました。
public interface Service {
String data();
}
public class MyBean {
@Produce(uri = "direct:data")
protected Service producer;
public void doSomething() {
// lets send a message
String response = producer.data();
}
}
hereとhereから取得した情報を理解すると、アプリに追加の 70 スレッド (ルートごとに 1 つ) が作成されます。パフォーマンスに重大な影響を与える可能性があり、バックエンド API が大きくなるにつれてスレッド数も大きくなるのではないかと心配しています。それが正しいか?それが本当ならどうすればこれを避けることができますか?私が理解しているように、この場合 ExecutorService スレッド プールを使用することはできません。
ご回答ありがとうございます。