ASP.NET 会话状态提供程序 NCache 在网络农场

对于本地部署,ASP.NET 会话状态提供了三种内置存储选项(InProc、StateServer 和 SqlServer)以及第四个“自定义”选项。前两个内置选项(InProc StateServer)存在可扩展性问题,而 SqlServer 选项则同时存在性能和可扩展性问题。

更好的策略是使用“自定义”选项和插件 NCache 身为你的 ASP.NET 会话状态提供程序. NCache 是一个非常快速和可扩展的.NET 开源分布式缓存。 它通过允许您在运行时添加更多缓存服务器并线性扩展来处理极端事务负载。 NCache 还提供智能 缓存复制 因此,如果 Web 服务器或缓存服务器出现故障,您不会丢失任何 ASP.NET 会话状态。

架构图 NCache 在 Web 服务器集群环境中,ASP.NET 会话状态提供程序显示了连接到线性可扩展动态缓存集群的无状态 Web 服务器层。
NCache 面向 ASP.NET Web 服务器集群的分布式会话架构。

的好处 NCache ASP.NET 会话状态提供程序

实施 NCache 您的会话状态提供程序 (SSP) 无需任何代码更改。您只需按照以下步骤操作:

  1. 安装 这个 NCache 通过 NuGet 包管理器获取会话提供程序 NuGet 包。
  2. 配置 修改 web.config 文件以使用“自定义”会话模式。
  3. 指定 您的 NCache 提供程序配置中的集群名称和设置。

请参阅配置详情 ASP.NET 会话状态提供程序 HPMC胶囊 NCache。以下是使用 NCache 作为您的 ASP.NET 会话状态提供程序:

  1. 高可用性:NCache 有一个 自我修复的点对点集群架构 由于不存在单点故障,因此可以确保 ASP.NET 会话状态存储 100% 正常运行,这对于业务关键型应用程序至关重要。这些高可用性特性使得 NCache 对于电子商务、金融服务和医疗保健等关键任务型应用而言,会话持久性对于交易完整性至关重要,因此它是首选方案。
  2. 线性可扩展性:NCache 让您 线性扩展缓存集群 通过向集群添加更多缓存服务器。 这增加了您的交易容量以及您的存储容量。 这意味着 ASP.NET 会话状态存储永远不会成为您的应用程序在繁重的事务负载下的瓶颈。
  3. 智能会话复制:NCache 提供丰富的缓存拓扑(镜像缓存, 复制缓存分区副本缓存) 具有智能会话复制功能,不会影响性能和可扩展性。这可确保您在 Web 服务器或缓存服务器发生故障时不会丢失任何会话数据。
  4. 快速紧凑序列化:NCache 提供了一个 紧凑序列化 它比常规的 .NET 序列化更快,而且无需编程。只需注册你的 .NET 类,然后 NCache 在运行时自动生成并编译序列化代码以实现高效使用。

如何跨多个区域(数据中​​心)管理 ASP.NET 会话?

NCache 提供了两种方法来管理在多个区域(数据中​​心)运行的应用程序的 ASP.NET 会话状态,并保持会话在各个区域之间的一致性。具体方法如下:

  1. ASP.NET 会话状态的 WAN 复制: NCache 提供了一个 桥接拓扑 让你将整个 ASP.NET 会话状态存储(分布式缓存)复制到另一个区域(数据中​​心) 广域网这可确保您的会话始终存在于多个区域(数据中​​心)中。您可以在主动-被动(用于灾难恢复)或主动-主动模式下使用此功能。在主动-主动模式下,您甚至可以在多个区域(数据中​​心)之间平衡流量负载。所有这些都可以通过配置更改来实现。

  2. 多区域 ASP.NET 会话状态: 如果您不想因为带宽消耗成本而跨 WAN 复制 ASP.NET 会话状态,则可以使用 多站点 ASP.NET 会话状态 的特点 NCache。在这种情况下,ASP.NET 会话状态不会跨站点复制,而是保存在其创建位置。但是,如果您将任何流量从一个区域(数据中​​心)移动到另一个区域,ASP.NET 会话状态也会随之移动。这允许您拥有两个或多个活动区域(数据中​​心),每个区域的大部分流量都保持在本地,但偶尔会在需要时溢出到另一个区域。

    而且,您还可以关闭一个数据中心而不会对用户造成任何中断,因为他们的会话可以被其他数据中心访问。

高级功能 NCache ASP.NET 会话状态提供程序

此 NCache ASP.NET 会话状态提供程序实现了所有标准 ASP.NET 会话状态提供程序 功能。此外,它还提供各种高级功能,让您可以处理应用程序中的复杂情况。

  1. 跨应用程序域共享会话: 如果您的应用程序使用多个应用程序域,并且每个域都有单独的 web.config中 文件,设置相同的 sessionAppId(例如,“NCacheApp1”),从而允许在这些域之间共享会话。如果使用不同的会话应用程序 ID,则会话不会在应用程序域之间共享。
  2. 错误记录: 您可以启用 错误日志记录 到你的网络服务器上的日志文件(在 INSTALL_DIR\NCache\log-files\SessionStoreProvider 文件夹)通过指定 enableLogs = "true". 您还可以通过指定将错误记录到 Windows 事件日志中 writeExceptionsToEventLog = "true".
  3. 标准会话锁定: 标准的 ASP.NET 会话锁定行为是:如果会话被锁定,则另一个针对该会话的请求将等待 90 秒(可配置),并在最后强制解锁该会话。您可以按如下方式指定此选项:

    enableSessionLocking = "true" sessionLockingRetry = "-1" emptySessionWhenLocked = "false"
  4. 增强的会话锁定: 如果您有一个高流量的 ASP.NET 应用程序,其中机器人可能正在抓取数据,并使用相同的会话 ID 同时处理数百或数千个请求。您无法承受标准的会话锁定选项,因为等待 90 秒可能会占用所有可用的套接字。相反,您希望快速返回请求以指示失败。您可以按如下方式指定:

    enableSessionLocking = "true" sessionLockingRetry = "5" emptySessionWhenLocked = "false"

    这会以半秒的间隔进行 5 次重试,然后返回一个空会话以表示失败。

  5. 企业应用案例: 这种增强的锁定行为是专门为高流量的航空公司网站设计的,目的是防止在密集的机器人抓取和高并发事件期间出现系统范围内的套接字耗尽。

接下来做什么?

常见问题

是的。通过在每个应用程序的 web.config 文件中配置匹配的 sessionAppId, NCache 允许您在不同的应用程序域之间共享会话状态。这非常适合用户在同一会话中切换多个子应用程序的环境。

是的。 NCache 是一种“零代码”会话管理解决方案。您只需修改 web.config 文件,将 sessionState 模式更改为“Custom”,并指定…… NCache 提供商。无需重新编译应用程序。

NCache 它采用具有智能会话复制功能的自愈式点对点集群架构。通过使用诸如分区副本之类的拓扑结构, NCache 它会在不同的节点上创建每个会话的备份,即使 Web 服务器或缓存服务器宕机,也能确保 100% 的正常运行时间和数据完整性。

NCache 是一个内存分布式缓存,而 SQL Server 是一个基于磁盘的数据库。 NCache 消除了 SQL Server 的数据库瓶颈和沉重的序列化成本,为会话检索提供了线性可扩展性和亚毫秒级的响应时间。

是的。 NCache 为多区域支持提供了两个主要功能:WAN 复制(通过桥接拓扑)用于主动-被动或主动-主动灾难恢复,以及多站点会话,允许会话保持在用户本地,但在流量重新路由时跨数据中心移动。

联系我们

联系电话

+1 214-619-2601 (美国)

+44 20 7993 8327 (英国)

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