WebSphere中跨JVM的会话复制

我们有一个基础架构设置,其中Web服务器是集群的,而应用程序服务器则不是。 Web服务器根据循环策略将请求路由到应用程序服务器。

在此方案中,一个应用程序服务器中可用的会话数据在另一个应用程序服务器中不可用。 无论如何,第一个应用程序服务器的会话数据是否可以在第二个应用程序中使用? 两个应用程序服务器在不同的单元中是物理上分开的框

一种方法可能是使用数据库 – 是否有其他方法来完成此会话复制?

在WebSphere中,基本上有两种方法来复制会话数据:

  1. 坚持使用数据库
  2. 内存到内存的传输

哪一个适合您的需求高度依赖于您的应用场景:

当所有应用程序服务器出现故障时,会话数据的持久性有多重要? 您同时拥有多少个会话对象?

在数据库中,您可以存储许多会话而没有太多问题,另一个选项始终是可用内存量的问题。

如果你已经有一个设置,我会使用数据库,所有应用程序服务器都使用它。

以下是WebSphere Information Center的链接以及必要的详细信息。

一个明显的解决方案是启用应用程序服务器的群集。 我假设你说出你的问题,你已经拒绝了这个选项。 另一种选择是更改Web服务器使用的路由以使用会话关联(对同一会话的请求转到同一个应用服务器)。

除此之外,我的第二个答案是dertoni。

也许你可以看看’terracota’。 它是一个缓存框架,可以缓存会话并在单独的服务器上运行

WebSphere,会话复制或数据库中有两种集群选项。 如果您有大型会话对象,最好使用数据库,因为它允许您将陈旧的会话卸载到磁盘。 如果它们随后被表示,则可以从数据库中提取它们,如果使用会话复制,那么这些会话不仅需要保留在目标服务器的内存中,还需要保留在复制组中的其他服务器上。 使用大型会话可能会导致内存不足。

使用数据库会话时,它也是非常可定制的,并且在我使用它的环境中表现不明显。

不要忘记oracle的连贯性。