2017-05-10 11 views
1

私はappengineエンドポイントを持ち、新しく作成されたエンドポイントインスタンスへの最初のいくつかの呼び出しで待ち時間を短縮しようとしています。アプリケーションはJavaで記述され、エンドポイントは自動スケーリングされます。 この問題に対処するために、アイドル状態のインスタンスを設定しましたが、インスタンスがすでに作成されていても、それにルーティングされる最初の数回のコールでは余分な時間がかかります。 documentationの後、ウォームアップ要求を処理するカスタムサーブレットを実装し、起動時にEndpointsServletをロードとしてマークしました。アプリエンジンのエンドポイントをウォーミングアップする方法

ウォームアップサーブレット内では、よく使用されるサービスを開始したり、データを読み込んだりするなどのコードを書いています。

それ後、私はそのようなエンドポイントによって公開されたメソッドの呼び出しを実装している:

call("/_ah/api/teamly/v1/test/dummy") 

それは(それらのさえほとんど)いくつかのケースのために働くと、いくつかの主要なメソッドのインスタンスを呼び出した後に仕えるのは本当に準備ができています。

どのように私が正しくから開始されたロード要求を避けるために、エンドポイント・インスタンスをウォームアップする必要があります私は今直面してる問題は、私はいくつかのモジュールI can't route the request to specific instance.

の自動スケーリングを使用しているのであれば問題があるということですフロントエンド。

+0

:あなたはで詳細な情報を見つけることができます。 – Nicholas

+0

@Nicholas - これは私の試みの1つです。何日かの間、どのように動作するか見ていきますが、この方法にはいくつかの欠点があります:ユーザーが読み込み要求を生成しないことと、 – piotrpo

答えて

2

リスナーを/ _ah/warmupに配置し、ウォームアップするリソースを呼び出す必要があります。ウォームアップするためのインスタンスを共通の解決策は、インスタンスは常に準備ができているように、定期的に与えられたのApp Engineサービスのエンドポイントをヒットするcronジョブを指定することです

Configuring Warmup Requests to Improve Performance

+0

あなたが正しいです、これが私がやろうとしていることです。ただし、自動スケーリングまたは基本スケーリングを仮定すると、このリソースコールが正しいインスタンスにルーティングされることを確認することはできません。 – piotrpo

関連する問題