GAE-Standard + Java11具有多个实例运行的会话

问题描述

我已经在GAE Java 11 Standard Environment上部署了我的spring boot应用程序。根据Java11的documentation,我们需要使用app.yaml来配置实例。

我想知道如何启用实例之间的会话共享。根据我的研究,之前我们可以通过在sessions-enabled中设置async-session-persistenceappengine-web.xml解决此问题。 appengine-web.xml消失之后,app.yaml中的等效方法是什么。

我要实现的用例是:

  1. 使用spring安全性(不幸的是,当我认为同一用户的请求转到另一个实例时,我注销了)。
  2. 将从数据库中检索到的用户存储在@SessionScoped变量中,以避免多次数据库调用

这里的任何帮助将不胜感激。谢谢!

解决方法

我阅读了很多文档,但是我认为这不在app.yaml配置参考中。

或者,我发现您可以使用会话亲缘关系以便使用实例始终答复同一用户的请求,这可以在您的应用程序中启用,您可以根据需要使用app.yaml中的下一个标记这个documentation

network:
  session_affinity: true

希望这对您有用。