java—在ejb应用程序服务器内存中维护用户数据

dwbf0jvd  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(304)

我们使用一个使用web服务器访问集群EJB3.1系统的系统。用户使用无状态会话bean登录并在一天中完成一些工作。
除了登录数据,我们还有新的要求,我们将存储有关用户的附加信息,这些信息是特定于登录的,例如用户的情绪、位置、t恤衫的颜色等。这些数据贯穿于整个登录过程,但在用户注销或因超时而注销时会被删除。
我们不想在数据库中存储任何东西,不想在每次对服务器的调用中提供信息,也不想使用其他笨拙的解决方案。当然不是如果数据存储在一些静态结构中,线程就不能被使用,等等。对我们来说,这感觉非常简单,应该有一个标准的方法来实现这一点。但我们没有找到一个例子。我们做错了什么?
我有点惊讶,似乎没有任何内置功能来存储这种数据。我在上面描述的需求一点都不稀奇,我在使用过的大多数系统中都发现了它们。我也找到了一些不满意的解决办法。

wgmfuz8q

wgmfuz8q1#

如果您使用无状态bean并且您有一个集群系统,那么您将不得不使用某种共享持久层来满足您的新需求。您不能将数据保存在集群示例上(否则您必须处理会话粘性)。
我认为,对于会话数据来说,一个好的、经过测试的方法是使用一个简单的(在管理方面)持久性解决方案,比如redis。您可以很容易地将其用于像jedis这样的库,而无需更改现有的数据库层/模型。

相关问题