Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何减少HttpSession的使用_Java_Session_Jakarta Ee - Fatal编程技术网

Java 如何减少HttpSession的使用

Java 如何减少HttpSession的使用,java,session,jakarta-ee,Java,Session,Jakarta Ee,在我的应用程序中,会话中有许多对象。因此,对于访问我的应用程序(它是一个员工信息管理系统)的每个用户来说,HttpSession的大小都很高。我尝试减少会话中的对象,并在一段时间内使用了HttpRequest。无论如何,会话都会损坏许多对象,从而导致JVM内存使用率高,服务器运行速度慢。因此,我需要减少会话大小 有什么解决办法吗?我是否应该添加另一台服务器并平衡负载或升级PC的RAM大小或JVM内存升级(如果我升级了,那么当更多用户使用系统时,将来会发生什么情况,那么我是否应该再次升级内存?)?

在我的应用程序中,会话中有许多对象。因此,对于访问我的应用程序(它是一个员工信息管理系统)的每个用户来说,
HttpSession
的大小都很高。我尝试减少会话中的对象,并在一段时间内使用了
HttpRequest
。无论如何,会话都会损坏许多对象,从而导致JVM内存使用率高,服务器运行速度慢。因此,我需要减少会话大小

有什么解决办法吗?我是否应该添加另一台服务器并平衡负载或升级PC的RAM大小或JVM内存升级(如果我升级了,那么当更多用户使用系统时,将来会发生什么情况,那么我是否应该再次升级内存?)? 我设想的解决方案是将这些对象添加到缓存服务器中,该服务器在单独的服务器(单独的PC)中运行,而不是在会话中运行。

请告诉我你的想法

是否应添加另一台服务器?-可能是。您是否应该添加RAM并为JVM提供更多内存你可以。它能解决问题吗?如果问题出现在设计中,那么它可能只会达到某一点。我的第一次尝试是减少会话中的对象。如果这是不可能的,请为该对象创建一个平面模型,您知道创建对象的精简版本,该版本具有所需的最小值


如果您仍然认为所有这些都完成了,并且没有发现显著的改进,那么正如Marc所建议的,您可以尝试根据您的需求和限制进行扩展或扩大。或者,您可以使用Memcached,或者再次使用Marc建议的Redis或Mongo,前提是您对持久化会话没有意见,并且愿意承受一点性能损失。我说一点是因为这些东西非常快。

当前每个会话需要多少内存?应用程序有多少客户端?首先,你必须确定你的问题。您不能先尝试减少正在加载到会话中的数据吗?改进应用程序后,它完全取决于环境。首先可以增加内存,然后可以将会话存储外包给数据库服务器。(Redis(最快)、MongoDB、Postgres、MySQL)感谢您的及时回复。我希望会话大小介于500KB和1mb之间,并且有100个并发用户。据我所知,能做的每一件事都已经做了。如果我使用数据库服务器,这难道不是一个性能问题吗?