Le Monde du Java

La Maison de René

统计

Amis

Blogs

Google

Others

学习

日常生活

留学法国

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 阅读(131) 评论(0)  编辑  收藏 所属分类: Programming


只有注册用户登录后才能发表评论。


网站导航: