2016-10-29 40 views
3

私のアプリケーション用のMicroservices APIを開発中です。私は春のブートアプリケーションを開始しました。私は"埋め込みチョッキを持つビジネスコード""埋め込まれたチラシなしのビジネスコード"のような2つの成果物を作成しました。Spring Boot Embedded Tomcatパフォーマンス

パフォーマンス結果を比較すると、 "非埋め込み"(つまりスタンドアロンのTomcatで実行)が表示されるため、ネイティブ実行のために良好な出力が得られます。

したがって、基本的には埋め込み型のTomcatとスタンドアロンのTomcatの違いは何ですか?実装は賢明である。

パフォーマンスは2回の実行によってどのように変化しますか?

よろしく、 ピーター

+0

どのようにテストしましたか?あなたは説明できますか?ありがとう。 – Rudge

+0

@ Rudge:Jmeterを使用して、両方のシナリオで負荷をシミュレートしました。私はビジネスコードでラクダを使用しています。トランザクションの終わりに、私は実行時間とルート情報を表示するメッセージ履歴を印刷しています。私は両方のsecanrioの実行時間を比較するときに、少なくとも私は組み込みのtomcatで20msの平均遅延を得ています。 –

答えて

6

私は、この問題の実際の根本的な原因を見つけました。

APR(Apache Portable Runtime)は、Tomcatスレッドの実行に重要な役割を果たします。

デフォルトでは、埋め込みTomcatはNIOを実行します。 NIOとBIOはJavaベースの実行で、それ以外の場合はAPRはネイティブ実行です。 NIOとAPRのパフォーマンスを比較すると、 APRははるかに高速です。

実際、すべてのLinuxベースのtomcatバンドルは、tomcat libフォルダの下にAPRライブラリが出荷されています。

Embedded Tomcat(つまりSpring Boot)でAPRを有効にした後、パフォーマンスの実行はスタンドアロンのTomcatと同じでした。

http://tomcat.apache.org/tomcat-7.0-doc/apr.html

+0

こんにちは@Peter Jerald、組み込みのTomcatでAPRを有効にする方法を教えてください。 –

+2

@Ace.Yinここに方法です:https://gist.github.com/andreldm/7f89a3279438467a0bd41e6c1249d014 – AndreLDM

関連する問題