Java Web 会话 NCache

会议 是一种为不同用户存储数据的方法。 在 Java Servlet 或 Java 服务器页面 (JSP) 内的应用程序服务器上创建的 Java 会话对象,称为 servlet 容器,用于托管 Web 应用程序,包括 Apache Tomcat、WildFly、Oracle WebLogic 服务器IBM WebSphere 应用服务器.

例如,Tomcat Web 服务器通过 Tomcat Web 服务器集群上的会话复制来提供会话处理。 会话复制可能会导致数据和内存开销,变得缓慢并且缺乏性能和可扩展性。

因此, NCache 提供了一个更好的选择,用户可以将他们的 Java 会话存储在他们的应用程序中,而不会在负载平衡的 Web 场中出现任何问题。

使用 Java Web 会话缓存架构 NCache 在负载均衡的 Web 服务器集群中提供会话提供程序,实现线性扩展。
可扩展的 Java 会话管理 NCache 动态集群。

支持的 Java Servlet 容器和规范

NCache 为其用户提供使用不同类型的 servlet 容器的选项,这些容器可以轻松托管他们的 Web 应用程序,如下所述。 NCache 符合 Java Servlet 3.1+ 规范。

  1. 阿帕奇雄猫: 它是 Java Servlet 和 Java Server 页面的开源实现,还提供了 Java 代码可以运行的“纯 Java”HTTP Web 服务器环境。它通过粘性会话提供会话处理。
  2. 野蝇: WildFly 是 Red Hat 开发的一款轻量级、高性能、开源 Java EE 应用服务器。
  3. Oracle WebLogic 服务器: Oracle WebLogic 是一个 Java EE 应用服务器,用于开发、部署和运行企业应用程序。
  4. IBM WebSphere 应用服务器: IBM WebSphere Server 是一个 Java EE 应用程序服务器,它提供了用于构建、部署和管理企业应用程序的运行时环境。

配置 Java 会话模块 NCache

要配置 Java 会话,需要修改位于 %NC_Home%/config 目录下的“session.xml”文件。 NCache 文件夹。 以下是执行此操作的代码 NCache. 有关使用 servlet 容器添加库、定义过滤器和部署应用程序的更多详细信息,请参阅 添加库和定义过滤器 寻求帮助。 NCache 它利用标准的 Java Servlet Filter API,可以拦截会话管理调用并将其重定向到分布式缓存,而无需修改应用程序逻辑。

<?xml version="1.0" encoding="UTF-8"?>  
   <!--for single regional session provider-->
<servlet-session-config>
    <cache id="myPartitionedCache"/>
    <log log-props="log4j.properties"/>
    <locking enable-session-locking="true" retries-count="2" retry-interval="500ms" lock-timeout="36000ms" empty-session-when-locked="false"/>
</servlet-session-config>

为何使用 NCache 用于 Java 会话管理?

NCache 为用户提供了一种“无需更改代码”的选项,使 Java 应用程序能够持久化会话。 NCache 分布式缓存。 如果您的应用程序在负载平衡的 Web 服务器场中运行,并且您需要可靠且可扩展的存储来实现会话持久性, NCache 具有以下优点:

  1. 最棒的表演: NCache 提供最快的响应时间,从而提高性能。通过利用 NCache 紧凑型序列化使 Java 对象的序列化速度比标准 Java 序列化快得多,从而大幅降低 CPU 开销和网络延迟。
  2. 高可用性: NCache 提供强大的分布式缓存集群,没有单点故障 高可用 这意味着您可以在不停止应用程序的情况下添加或删除缓存。
  3. 极高的可靠性: NCache 允许用户根据指定的拓扑结构,在多个服务器上复制 Java Servlet 会话。诸如分区副本之类的拓扑结构可确保会话数据在节点间镜像,即使单个缓存服务器发生故障,也能保证 100% 的正常运行时间,且不会影响可靠性和性能。因此,即使缓存服务器因任何原因宕机,用户也不会丢失任何会话数据。
  4. 通过拓扑实现出色的会话复制: NCache 提供各种缓存拓扑,您可以通过这些拓扑根据需要保留会话。 例如,可以使用 分区复制拓扑 以获得更高的可靠性和可扩展性。
  5. 线性可扩展性: NCache, 内存分布 线性可扩展 网格,具有处理高负载的能力,这就是会话应用程序可以实现尽可能多的可伸缩性的原因。

如何跨多个区域管理 Java 会话?

跨分布式数据中心管理会话通常会带来延迟和同步方面的挑战。 NCache 它通过提供灵活的多站点持久化选项来解决这个问题。为了管理跨多个地理位置分散的 Web 服务器集群的 Java Servlet 会话, NCache 通过以下方式提供多站点会话持久性:

  1. Java Web 会话 WAN 复制: NCache 允许用户通过 WAN 将所有 Java 会话复制到另一个区域(数据中​​心) 桥接拓扑 的特点 NCache. 这可确保即使某个区域出现故障,您的 Java 会话也不会丢失。
  2. 多站点 Java Web 会话: 如果用户不想在 WAN 上复制会话主要是因为高带宽消耗和可能的性能问题,那么他们可以选择使用 多站点 Java 会话支持, 一个特点 NCache. 在这种方法中,每个区域都可以配置它们单独的缓存,并且每个缓存都有自己的一组客户端(Java servlet)。 会话不会跨站点复制,而是保留在其创建位置。

通过这种方式,我们可以拥有两个或多个活跃的独立区域,并且用户可以将大部分流量保持在自己的区域。 同样,如果用户出于某种原因关闭了某个区域,也不会造成任何问题,因为该区域可以被其他区域访问。

高级功能 NCache Java 网络会话

Java Web 会话 NCache 实现了 Java Web Sessions 提供的所有标准特性。 此外,它还实现了一些高级功能来处理其他重要情况。

  1. 会话到期: NCache 处理会话到期并在指定的会话超时内从缓存中删除会话。 同样,我们可以通过 servlet 容器指定会话超时值, NCache 将在内部使用该时间间隔使缓存中的会话过期。
  2. 处理多个会话请求和数据完整性: 为了避免并行请求可能导致会话发生变异的情况, NCache 提供了一种锁定机制,因此没有两个并行请求可以更改同一个会话。 您可以通过以下方式在“session.xml”文件中指定它:
    <servlet-session-config>
        <locking enable-session-locking="true" retries-count="2" retry-interval="500ms" lock-timeout="36000ms" empty-session-when-locked="false"/>
    </servlet-session-config>
  3. 处理会话数据序列化: 在将 Java 对象放入 Java servlet 会话并将它们存储在进程外之后,必须对整个 Java servlet 会话进行序列化。 NCache 与常规 Java 序列化相比,提供更快的序列化,称为 紧凑序列化. 这样,您的 Java 应用程序速度就会大大提高。

接下来做什么?

常见问题

NCache 通过将会话数据从速度慢、磁盘密集型数据库或开销大的 servlet 复制迁移到内存分布式缓存,从而提高性能。通过使用 NCache 紧凑型序列化,Java 对象的序列化速度比标准 Java 序列化更快,显著减少了高流量环境下的 CPU 周期和网络延迟。

是的。 NCache 它利用标准的 Java Servlet 过滤器 API 提供“无需代码更改”的集成。您只需修改 session.xml 配置文件,使其指向您的…… NCache 集群,过滤器会自动拦截会话管理调用,并将它们重定向到分布式存储。

为了防止在并行请求(例如 AJAX 调用)期间出现数据丢失或“脏读”, NCache 实现了强大的会话锁定机制。这确保在某个请求修改会话对象时,其他请求会根据您特定的锁定配置进行排队或处理,从而保持严格的数据一致性。

是的。 NCache 通过桥接拓扑实现广域网复制,支持地理位置分散的 Web 服务器集群。它通过跨数据中心复制会话数据来确保高可用性。此外,您还可以使用多站点 Java 会话,将流量限制在特定区域内,同时保持故障转移到其他站点的能力,以防某个数据中心发生故障。

联系我们

联系电话

+1 214-619-2601 (美国)

+44 20 7993 8327 (英国)

©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。