gpt4 book ai didi

java - Tomcat/jBOSS session - 它们通常存储在哪里?

转载 作者:行者123 更新时间:2023-11-28 21:54:12 25 4
gpt4 key购买 nike

前言:我不是java开发者。

我有一个关于 Tomcat/jBOSS 和其他 java 应用服务器的问题。 session ( session 数据)存储在哪里?在 PHP 中, session 通常存储在数据库中,这意味着您可以轻松地在负载平衡环境中共享 session 数据。在 Tomcat 和其他应用程序服务器中, session 似乎默认存储在内存中,这不适用于负载平衡环境。虽然 PHP 确实默认将 session 存储在文件中,但需要几行代码才能将其连接到数据库。应用服务器也是这样吗?

基本上,内存中讲故事的优点是什么?这仍然是应用程序服务器的标准做法吗?谢谢大家!

最佳答案

I have a question about Tomcat / jBOSS and other java application servers. Where are sessions (session data) stored?

默认情况下,我会在内存中说。细节实际上是……特定于应用程序服务器的实现细节。

In PHP, sessions are usually stored in the database which means you can easily share session data in a load balanced environment. In Tomcat and other application servers, session seem to be stored in memory by default which would not apply in a load balanced env.

嗯,不完全是。这意味着客户端请求必须发送到集群环境中的同一节点(这称为“ session 粘性”),从负载平衡的角度来看这不是问题。但从故障转移的角度来看,这是一个问题:如果集群中的某个节点发生故障,则该节点管理的 session 状态可能会丢失。为了解决这个问题,几乎所有的应用服务器提供商都实现了 session 故障转移(使用各种机制,例如内存复制、基于 JDBC 的持久性等)。但是,同样,实现细节是特定于应用程序服务器的。例如,请参阅如何 TomcatWebLogic处理那个。 Under the Hood of J2EE Clustering服务器端的文章也是一本非常有趣的读物。

While it is true that PHP stores sessions in files by default, it takes a few lines to hook it up to a DB. Is the same true of applications servers?

正如我所说,并非所有应用程序服务器都将提供基于 JDBC 的持久性。话虽如此,并回答您的问题,配置通常很简单。但是使用数据库确实不是首选解决方案(实际上,我不惜一切代价避免使用它)。

Basically, what's the pros for storying sessions in memory? Is this still standard practice for application servers?

很简单:性能!序列化数据、调用数据库、写入磁盘,所有这些都是有成本的。内存复制显然可以避免一些开销。但它也有一定的局限性。例如,它不允许 WAN HTTP Session State Replication与网络逻辑。但是好吧,只有少数人需要这个:)

关于java - Tomcat/jBOSS session - 它们通常存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1922048/

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