2011-10-27 7 views
1

私はGoogle App Engineのバックエンドを使ったことが一度もありませんでした。サンプルと詳細なドキュメントが不足しているため、私は非常に混乱しています。通常のステートレスなサーブレットからバックエンドインスタンスにデータを渡すには?

投票アプリがあるとします。私は、通常のステートレスGAEサーブレットで投票を収集し、そのデータを常駐するバックエンドインスタンスに渡して、自分のデータを処理します。通常のサーブレットからバックエンドサーブレットにデータを渡すにはどうしたらいいですか?どのサーブレットクラスが通常のサーブレットであり、どのサーブレットがバックエンドインスタンスでのみ処理されるべきかをどのようにして割り当てるのですか? config xmlでバックエンドにサーブレットを割り当てる方法がわかりません。

2つのバックエンド(B1クラスとB2クラス)がある場合はどうなりますか?ステートレス・サーブレットのコードで、どのバックエンドが現在アクティブであるかを選択するにはどうすればよいですか?私はバックエンドと話すのにURL Fetchを使うべきだと聞いたが、どうだった?私はバックエンドのインスタンスをどのように反復できるのか分かりませんでした。

:)

答えて

3

を教えてくださいあなたは、私はバックエンドのサーブレットへの定期的なサーブレットからのデータを渡すことができますどのようにthe documentation on backends

を読むことから始めなければなりませんか?

いくつかのオプションがあります。間接的にmemcacheまたはデータストアにデータを固定して渡します。または

(下記のアドレス指定情報を参照してください)あなたのバックエンドへの要求を行うURLFetchのを使って、それを直接渡すにはどうすれば通常のサーブレットで、どのようなサーブレットが唯一のバックエンドインスタンスで扱われるべきか、サーブレットクラスに割り当てていますか?

バックエンドはのセットを共有:

Backend Configuration上のドキュメントには、あなたは彼らが公衆に利用できないだけので、管理者としてそれらをマークすることができますが、あなたは(まだ)それを行うことができないことを説明しメインアプリケーションのバージョンでweb.xmlに定義されたサーブレット。現時点では、バックエンドごとに個別のサーブレットセットを構成することはできません。

「アドレス指定のバックエンド」セクションでは、特定のバックエンドへの接続方法に関する情報が含まれています

バックエンドのインスタンスは、httpへのHTTPリクエストをターゲットにすることができます。// [インスタンス] [バックエンド] 。[app] .appspot.com、またはアプリケーションのカスタムドメイン。 http:// [backend]。[app] .appspot.comを使用してインスタンスをターゲティングせずにバックエンドをターゲティングする場合、App Engineはバックエンドの最初に利用可能なインスタンスを選択します。

バックエンドを設定するときは、それらの名前を指定します。これらの名前は、上記のURLスキームの[バックエンド]スロットに入ります。最初に利用可能なB1インスタンスにhttpリクエストを送信する場合は、という名前を使用します。http://B1.ruslansapp.appspot.com/dosomething/

+1

バックエンドのURLを取得するためのAPIがあります。デベロッパーとプロダクション全体で機能し、URLをハードコードする必要性を避ける方法:http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/backends/package-summary.html –

+0

@NickJohnsonとPeter、与えられたバックエンドごとにアクティブなインスタンスの量を調べる方法があれば、何か偶然知っていますか? APIのようなものは私には見られません。私がしたいのは、動的インスタンスを使用し、フロントエンドサーブレットでそれらにロードバランス呼び出しを行うことです。ドキュメントによると、Googleは負荷に基づいてインスタンスの量を変更する可能性があります。もう1つは常駐インスタンスの一定量を使用していたのはかなり高価です。 – expert

+0

Hmmm、 "/ _ah/start"のハンドラでキャッシュカウンタを増やすことができますね。 – expert

関連する問題