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

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

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

文件: ASP.NET 会话状态提供程序 NCache

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

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

首先,无需编程即可使用 NCache 作为您的 ASP.NET 会话状态提供程序。 您只需修改您的 web.config 并指定 NCache 作为您的会话状态提供者 (SSP)。 查看详情 为 ASP.NET 会话状态提供程序配置 NCache. 以下是使用的一些好处 NCache 作为您的 ASP.NET 会话状态提供程序:

  1. 高可用性: NCache 有一个 自我修复的点对点集群架构 没有单点故障。 这为您的 ASP.NET 会话状态存储提供了 100% 的正常运行时间,这对于业务关键型应用程序非常重要。

  2. 线性可扩展性: NCache 让您 线性扩展缓存集群 通过向集群添加更多缓存服务器。 这增加了您的交易容量以及您的存储容量。 这意味着 ASP.NET 会话状态存储永远不会成为您的应用程序在繁重的事务负载下的瓶颈。

  3. 智能会话复制: NCache 提供丰富的缓存拓扑(镜像缓存、复制缓存和分区-副本缓存) 智能会话复制 这不会影响性能和可扩展性。 这可确保您在 Web 服务器或缓存服务器出现故障时不会丢失任何会话数据。

  4. 快速紧凑序列化: NCache 提供了一个 快速紧凑序列化 这比常规的 .NET 序列化更快,并且不需要编程即可使用。 只需使用它注册您的 .NET 类,然后 NCache 生成序列化源代码,在应用程序连接到缓存时在运行时将其编译到内存中,然后将此编译后的代码用于所有后续序列化。

支持多个区域(数据中​​心)

NCache 为您提供了两种方法来管理在多个区域(数据中​​心)中运行的应用程序的 ASP.NET 会话状态,并且仍然保持它们之间的会话一致性。 他们是:

  1. ASP.NET 会话状态的 WAN 复制: NCache 提供了一个 桥接拓扑 让您将整个 ASP.NET 会话状态存储(分布式缓存)复制到 WAN 上的其他区域(数据中​​心)。 这可确保您的会话始终存在于多个区域(数据中​​心)中。 您可以在主动-被动(用于灾难恢复)或主动-主动模式下使用它。 在双活中,您甚至可以在多个区域(数据中​​心)之间对流量进行负载均衡。 所有这些都是通过配置更改来完成的。

  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. 错误记录: 您可以在 Web 服务器上的日志文件中启用错误日志记录(在 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 次,然后返回一个空会话以表示失败。 即使在这里抛出异常也是昂贵的。 这就是实现空会话的原因。 此行为最初是根据高流量航空公司网站的请求实施的。

接下来做什么?

NCache 更多信息
下载 NCache
请求个性化演示

注册每月电子邮件通讯以获取最新更新。

联系我们

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