Java WebSphere中跨JVM的会话复制
我们建立了一个基础设施,其中Web服务器是集群的,而应用服务器不是集群的。Web服务器基于循环策略将请求路由到应用程序服务器 在此场景中,一个应用服务器中可用的会话数据在另一个应用服务器中不可用。在第二个应用程序中,是否仍然可以使用来自第一个应用程序服务器的会话数据?这两个应用服务器在不同单元中是物理上独立的盒子Java WebSphere中跨JVM的会话复制,java,session,replication,websphere,Java,Session,Replication,Websphere,我们建立了一个基础设施,其中Web服务器是集群的,而应用服务器不是集群的。Web服务器基于循环策略将请求路由到应用程序服务器 在此场景中,一个应用服务器中可用的会话数据在另一个应用服务器中不可用。在第二个应用程序中,是否仍然可以使用来自第一个应用程序服务器的会话数据?这两个应用服务器在不同单元中是物理上独立的盒子 一种方法是使用数据库-是否有其他方法来完成此会话复制?也许您可以看看“terracota”。它是一个缓存框架,可以缓存会话并在单独的服务器上运行。在WebSphere中,复制会话数据基
一种方法是使用数据库-是否有其他方法来完成此会话复制?也许您可以看看“terracota”。它是一个缓存框架,可以缓存会话并在单独的服务器上运行。在WebSphere中,复制会话数据基本上有两种方法:
以下是指向的链接,其中包含必要的详细信息。不要忘记oracle一致性。一个明显的解决方案是启用应用程序服务器群集。从你提问的措辞来看,我认为你拒绝了这个选项。另一个选项是将web服务器使用的路由更改为使用会话关联(相同会话的请求转到相同的应用程序服务器)
除此之外,我支持dertoni的回答。在WebSphere中有两种集群选择,会话复制或数据库。若您有大型会话对象,最好使用数据库,因为它允许您将过时的会话卸载到磁盘。如果这些会话随后被表示,则可以从数据库中提取它们;如果使用会话复制,则这些会话不仅需要保留在目标服务器上的内存中,还需要保留在复制组中的其他服务器上。对于大型会话,这可能导致内存不足
通过数据库会话处理,它也非常可定制,在我使用过的环境中性能不明显。我相信您可以在WAS控制台中将它们配置为集群,不是吗?感谢您的响应dertoni。我们使用了相当多的会话数据——同意这是一种不好的做法,但作为一个维护应用程序,到目前为止,它一直是一个很好的例子。如果我们碰巧将数据保存在数据库中,我们将不得不检索数据并重新填充应用程序对象,以重新显示预期页面,这在这里是一个挑战。您知道websphere是否复制会话数据,尽管在web应用程序的web.xml中,标记“distributable”不存在?在大多数情况下,会话亲和力是穷人解决这个问题的办法。