无法在Vaadin上使用春季课程

问题描述

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

我没有注意到问题,我已经研究了几天,得到了Github issueVaadin microservices configuration,但是在这些问题中,我没有找到合适的解决方案来解决此问题,任何人都可以给我一个实施在Vaadin上的春季会议的真实例子吗?

问候。

解决方法

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

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

要序列化会话到持久性存储,因此,您需要确保负载均衡器使用粘性会话,并且通常还使用高性能解决方案(例如Hazelcast),而不仅仅是针对每个请求分别进行反序列化和序列化。

有关更多详细信息,您可以查看以下两个帖子:

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...