gpt4 book ai didi

java - 我可以在 Java HttpSession 中存储整个图吗?

转载 作者:行者123 更新时间:2023-12-01 13:29:41 26 4
gpt4 key购买 nike

我正在开发一个Web应用程序,它基本上让用户在浏览器中创建一个图形(在服务器中,图形基本上是一个节点列表,每个节点都有一个边列表)。用户创建或删除的每个节点或边都通过Ajax与服务器通信,因此服务器可以构造一个由Java对象表示的等图。该应用程序是桌面应用程序的网络版本。所以我想向用户提供“保存”图表的选项。我最初的想法是当用户单击保存按钮时将对象保留在数据库中,但为此我需要将我的图表保留在用户的 session 中。

那么我可以在http session 中存储一个图(它是节点和边的集合)还是有更好的方法来实现我想要的?

Obs:我正在考虑直接在数据库中操作图形,也就是说,图形始终保留,如果用户 session 过期,我会删除尚未保存的数据库图形。

最佳答案

答案取决于您的应用的规模。

如果您只有一台服务器有足够的内存来保存所有并发用户的 session

在 session 中存储信息是最简单的事情。确保您的图是可序列化的,并且 Servlet(或 J2EE)容器将接管其余部分。如果您为数据实现一些自定义算法,则可以帮助实现 httpsession 持久性。

如果你长大了

也就是说,如果您有不止一台前面有负载均衡器的服务器,或者您的图表不适合内存。将它们存储在某些共享存储中 - 数据库或文件管理器,并通过某些键查找进行检索。考虑使用粘性 session 来最大限度地减少数据库/文件查找并将最近的图表缓存在内存中

花哨的技巧

如果你找到一种方法将整个图压缩为 1-2KB,将其完全放入 http cookie,浏览器将在每次请求时将其发送回给你,你的服务器将是无状态的,没有数据库,没有 session 关联问题。

关于java - 我可以在 Java HttpSession 中存储整个图吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21644593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com