2011-10-27 31 views
1

我從來沒有使用Google App Engine後端,我很困惑缺乏樣本和詳細的文檔。如何將數據從常規無狀態servlet傳遞到後端實例?

假設我有一個投票應用程序。我想收集常規無狀態GAE servlet中的投票,然後將數據傳遞給駐留的後端實例,並處理我的數據。如何將數據從常規servlet傳遞到後端servlet?我如何分配哪些servlet類是普通的servlet,哪些servlet只能在後端實例中處理?我沒有看到我可以如何將servlet分配到配置xml中的後端。

或者如果我有兩個後端 - B1級和B2級,該怎麼辦?我如何在無狀態servlet代碼中選擇後端現在處於活動狀態?我聽說我應該使用網址提取與後臺對話,但是如何?我沒有找到如何通過後端實例進行迭代。

請指教:)

回答

3

你應該開始通過閱讀the documentation on backends

如何從常規的servlet將數據傳遞到後端的servlet?

您有幾個選擇 - 通過將數據粘貼到內存緩存或數據存儲區間接傳遞它。或者直接使用的URLFetch發出請求到您的後端(見下面的尋址信息),通過它

如何分配什麼servlet類是正常的servlet和servlet的東西應該只在後端實例來處理?

Backend Configuration的文檔說明,你不能這樣做,(還),但你可以將它們標記爲管理員只所以他們不向公衆提供:

後端共享一套在web.xml中使用主應用程序版本定義servlet。目前不可能爲每個後端配置一組單獨的servlet。

「尋址後端」部分包括有關如何連接到一個特定的後端信息:

後端實例可以使用HTTP請求到http針對性:// [實例] [後端] 。[app] .appspot.com或您應用程序的自定義域名。如果您使用http:// [backend]。[app] .appspot.com定位後端而不鎖定實例,則App Engine將選擇第一個可用的後端實例。

當你配置你的後端,你給他們的名字,這些名字進入上面描述的url方案的[backend]插槽中。如果你想發送一個HTTP請求到第一個可用的B1實例,你可以使用類似http://B1.ruslansapp.appspot.com/dosomething/

+1

有一個API用於獲取後端的URL這種方式可用於開發和生產,並避免需要對網址進行硬編碼:http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/backends/package-summary.html –

+0

@NickJohnson和Peter,你知道有沒有辦法找到每個給定後端的活動實例的數量?我在API中沒有看到類似的東西。我想要做的是在前端servlet中使用動態實例並對它們進行負載平衡調用。根據文檔,Google可能會根據負載更改實例數量。另一方面,使用常量的常駐實例非常昂貴。 – expert

+0

嗯,我想我可以在「/ _ah/start」處理程序中增加緩存計數器。 – expert

相關問題