0

如果我将 spring-session jdbc 添加到我的 vaadin-spring-boot-application 应用程序非常慢,并且会在几秒钟后重新加载整个页面。其他一切看起来都正常工作。

我没有注意到这个问题,我在这个问题上研究了几天,得到了这个Github 问题Vaadin 微服务配置但是在这些中,我没有找到合适的解决方案来解决这个问题,任何人都可以给我一个真实的在 Vaadin 上实施 Spring 会话的示例?

问候。

4

1 回答 1

5

像这样的会话复制方案spring-session假设会话相对较小,并且内容对来自多个请求线程的并发修改不敏感。这些假设都不适用于典型的 Vaadin 应用程序。

第一个问题是会话中通常有 100KB 到 10MB 的数据需要从数据库中获取、反序列化、更新,然后再次序列化并针对每个请求存储在数据库中。第二个问题是 Vaadin 在会话中存储了一个锁实例,并使用它来确保没有多个请求线程同时使用同一个会话。

要将会话序列化到持久存储,因此您需要确保负载均衡器使用粘性会话,并且通常还使用 Hazelcast 等高性能解决方案,而不仅仅是为每个请求单独反序列化和序列化。

更多细节,你可以看看这两个帖子:

于 2020-09-22T07:51:32.343 回答