Google App Engine for Java会话究竟如何运作?

Kyl*_*yle 8 java google-app-engine

我知道app引擎使用memcache和数据存储区进行会话.我可以在appstats中看到,当我调用getSession(),创建一个新会话时,会发生1个内存缓存和1个数据存储.

但是,在我的应用程序的每个请求中,我从会话中获取当前用户对象.并且没有memcache或数据存储区显示在appstats中.

这是如何运作的?

S.J*_*nes 1

Google 博客“ Easy Performance Profiling with Appstats ”有一篇不错的文章,介绍了 Appstats 中的内存缓存分析。它是在 Python 中讨论的,但引用了 Appstats for Java 的使用。

来自:“Google App Engine > Appstats for Java

怎么运行的

Appstats Servlet 过滤器将自身添加到作为 App Engine 服务 API 基础的远程过程调用框架中。它记录请求处理程序期间进行的所有 API 调用的统计信息,然后使用__appstats__. Appstats 保留最近 1,000 个请求的统计信息(大约)。数据包括摘要记录(每条大约 200 字节)和详细记录(每条最多 100 KB)。

Appstats 的 Java 版本使用固定值和行为来确定数据在内存缓存和数据存储中的存储方式。(这些不能像 Python 版本的 Appstats 那样进行配置。)

如果您遇到内存缓存数据未显示在 Appstats 中的问题,您可能需要将JCache视为 App Engine 内存缓存服务的接口。或者,这里推荐了一些专门用于报告 memcached 统计信息的工具。

干杯。