Google App Engine試用
作為一個比較好用的云計算平臺,GAE剛開始支持Java的時候,Rene就注冊了。之后一直放著沒管,連一個簡單的實例也沒有寫過。因為在脫離IDE支持的環境下,剛開始上手是很痛苦的。這次連著休息了3天,重新裝好Eclipse,配置好環境,試用了一下GAE,感覺還是很好玩的。還沒有想好要做一個怎樣的服務,就先嘗試著封裝一下。尤其是緩存,想了一個辦法提供動態的失效期,而不是在緩存創建的時候定義。
算法很簡單,在本地測試了一下也沒有問題。可是部署到服務器就出問題,緩存無視定義的失效期,每次都命中。想了一下,覺得應該是失效期簡單地使用了靜態變量。在本地沒有問題,因為我只有一個JVM。而服務器應該是一個分布式的環境,即有多個JVM。同一個類的對象也許會在多個JVM環境中被創建與初始化。靜態變量也就失去作用了。
寫了一個小例子,可以看到在剛開始靜態變量是起作用的。1分鐘后,另一個Servlet對象在另一個JVM中被創建且初始化。
最后把失效期也放入緩存就解決問題了。緩存應該可以被認為是在整個分布式服務中,唯一可以被共享的數據區域吧。另外,Servlet第一次被創建會耗費不少CPU時間,需要考慮用緩存優化一下。
posted on 2010-06-20 20:08 Rene 閱讀(208) 評論(0) 編輯 收藏 所屬分類: Programming