キャメルを使用して、実行時にプロセッサのプロパティを変更する方法?

StackOverflow https://stackoverflow.com/questions/1131107

  •  16-09-2019
  •  | 
  •  

質問

私はこのようなJavaのDSLで記述されたキャメルのルート定義を持っています

from(myEndpoint) 
.throttle(200)
.to(myOtherEndpoint);

これは、毎秒200件のメッセージにメッセージ・フローを制限スロットラーを使用して私の2つのエンドポイントを接続している。

私は、実行時にmaximumRequestCount /秒を変更する方法を探しています。 だから私は何とかと呼ばれるスロットラーのインスタンスを取得し、プロパティを変更する必要があります。

私はスロットラーにアクセスするにはどうすればよい?

役に立ちましたか?

解決

[OK]を、私は自分でそれを考え出した...

あなたはあなたのスロットラーのインスタンスを自分で定義する必要があります。

Throttler throttler = new Throttler(null, 200);
スロットラーは、プロセッサインタフェースを実装しているため、

次に、あなたは、このようなあなたのルートでそれを使用することができます:

from(myEndpoint) 
.process(throttler)
.to(myOtherEndpoint);

あなたが好きいつでもあなたは、スロットラーのプロパティを変更することができます。

他のヒント

うん、それはきちんとしたソリューションです。

キャメル2.0では、あなたは今のルートでランタイムプロセッサをナビゲートするため、任意のThrottlersを検索し、それを動的に変更することができます。

しかし、我々はまた、あなたがスロットラー/遅延やJMXから同類を変更することができキャメル2.1でJMXの改善に取り組んでいます。

そして、あなたは1つのライナーで見つけることができるように多分またあなたがルートのidを提供する場合などは、多分IDでルックアップし、移動のAPIを向上させます。または種類によってあなたはフィルタリングやのみなどThrottlersを得ることができますので。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top