2017-10-31 11 views
2

現在、Apache Camel(Spring Boot付き)を統合プラットフォームとして使用しています。我々は、統合する複数のバックエンドシステムを持っています。ほとんどの場合、Apache CXFとCXF RSを使用してこれらのシステムを呼び出します。SOAP呼び出しにかかる時間Camel

私たちがバックエンドシステムを待つ時間と、アプリケーションによってどれくらいのオーバーヘッドがかかるかを記録したいと思います。

  • ExchangeCreatedEventExchangeCompletedEventイベント間の時間を:

    我々は、次のログインができ Beanを、作成しました。私はこれが要求に応えるのにおよそフルタイムだと思う。 (私たちのオーバーヘッドとバックエンドシステムの時間としてのフルタイム)

  • そしての注釈のプロパティを記録することができます。

私は後者に問題があります。高負荷では、アプリケーションがSOAP応答を処理するのにかなりの時間がかかり、今回はtimeTakenプロパティに含まれています。

私たちがバックエンドシステムを待つ時間を測定するための適切なCamel-wayとは何ですか?

答えて

0

キャメルは、JMXサポートを介してトレーサビリティをサポートしています。ルートや個々のエンドポイントなどのさまざまな解像度でリアルタイムでドリルダウンできます.JConsoleを使用するだけで、完了までの最小/最大/平均時間をレポートできます。これは少なくとも、個々のエンドポイントで呼び出されるバックエンドプロセスのためのリクエスト - >応答時間についてのいくつかの洞察を与えるはずです。レコードの

See here.

+0

ええ、私はこれらの指標のいくつかを見てきましたが、私が望むように誰も冗長であるとは見ていませんでした。 –

+1

SOAP呼び出しに使用するキャメルコンポーネントにはダイビングする必要があります。キャメルコンポーネントのロギングや、そのファインレベルでタイミングを取るために使用しているものを使用する必要があります。または、TCPパケットレベルのネットワーキングツールなどを見てください。 –

+0

Clausでは、バックエンドをモックレスポンスシミュレータに置き換えました。モックレスポンスシミュレータは、500msの固定遅延で各レスポンスを送信します。 CXFコンポーネントのCamelの 'timeTaken'プロパティを使用すると、毎回約510msの応答が得られていることが証明されていますが、巨大な負荷を持つ統合プラットフォームでは25-30秒もの測定結果が返されます。 –

-1

:私はorg.apache.cxf.interceptor.MessageSenderInterceptor.MessageSenderEndingInterceptorクラスに基づいorg.apache.cxf.interceptor.Interceptorを(実装しました

  • 場合、私は、SOAPリクエストのためのより正確な時間を測定することができると思います! - 私はまた、コンストラクタの引数を設定するために必要な)
  • そして、それは、ここで述べていますように私はCXFエンドポイントにこのインターセプタを登録します。http://camel.apache.org/cxf.html

私は、SOAP応答が別々のThreadPoolで消費されていると思うし、高負荷の下では、プールのキューからレスポンスオブジェクトを消費するために多くの時間を要します。しかし、上記のようにCXFインターセプターをセットアップすると、応答がキューに入る前に実行されます。

私はこのソリューションをテストしておらず、それ以上実装されていません。しかし、私が将来この問題に直面したら(こんにちは未来 - googler私!)、私はこれらの場所を見始めるだろう。

関連する問題