我应该在Google App Engine中使用会话吗?

时间:2014-06-22 08:07:01

标签: java google-app-engine http session

我刚刚从this questions了解到Google应用引擎现在支持会话。我希望能够使用它们,但我不确定我是否应该因为我可以。感谢可扩展性问题。

我的问题确实是,

我会在哪里存储会话信息?在数据存储中还是需要很长时间?肯定远远不够昂贵?

mem缓存怎么样?我几天才知道GAE,我还在读书。 Mem缓存是否被认为是快速/可扩展的并且是否需要花费?

会话可扩展性的最佳做法是什么?

非常感谢

2 个答案:

答案 0 :(得分:5)

你真的没有选择。 Appengine透明地处理会话持久性和快速访问。

引自the official documentation

  

App Engine包含使用servlet会话接口的会话实现。该实现将会话数据存储在App Engine数据存储区中以实现持久性,并且还使用memcache来提高速度。

答案 1 :(得分:1)

  

我会在哪里存储会话信息?在数据存储或   这会花多长时间吗?肯定远远不够昂贵?

如果您在GAE上启用会话,它会自动将会话信息存储在内存缓存中,并将其备份到数据存储区中。

  

mem缓存怎么样?我只知道GAE几天了   我还在读书。 Mem缓存是否被认为是快速/可扩展的   它需要花费吗?

memcache查询没有成本,并且比数据存储区查询快得多。缺点是memecache易变,可能随时刷新。这就是为什么GAE也会备份数据存储区中的会话信息的原因。

  

会话可扩展性的最佳做法是什么?

那里有许多思想流派,但理想情况下你的应用应该是“无国籍的”#34;为了实现最大的可扩展性"在GAE上,您应该能够处理每个请求而无需任何其他信息,但这通常很难获得。

在您的实例之间共享空间(例如memcahce / datastore / blobsotre)几乎可以消除与分发和动态相关的所有问题"设置,但哲学上你应该尝试尽可能无状态地实现应用程序。

相关问题