grails flash 作用域是否适用于多个服务器实例?

does grails flash scope work for multiple server instances?

我们将 spring-session 添加到我们的 grails 3 应用程序并且 flash messages/errors 停止显示。查看源代码,它看起来只是一个内存中的映射,尽管我不确定在持久会话时它是否被序列化:

https://github.com/grails/grails-core/blob/master/grails-web-common/src/main/groovy/org/grails/web/servlet/GrailsFlashScope.java#L45

我想知道 flash scope 是否仅在 运行 管理会话的单个实例时有效,或者例如,如果在具有多个实例且没有会话亲和性的 tomcat 集群中 flash scope还在工作吗?

Flash 作用域是特定于服务器实例的,并且在不使用会话关联的情况下不适用于多个服务器实例。

Spring-session 目前不允许改变 performance reasons. You can, however, persist it yourself using a simple filter - or use the spring-session grails plugin.

的会话对象

我个人使用 spring-session 依赖并从插件中获取 HttpSessionSynchronizer 过滤器 - 使用它是因为它是使 flash 与 spring-session 一起工作的唯一部分.