【问题标题】:ASP.NET cache solution for load-balancing system用于负载均衡系统的 ASP.NET 缓存解决方案
【发布时间】:2012-04-02 17:26:17
【问题描述】:

我们正在负载平衡系统上开发一个 ASP.NET Web 应用程序。现在我们面临着当前缓存系统的几个问题:

  1. Web 服务器之间不同步。有一些解决方案,例如 SQL Cache Dependency 或实现单独的 Cache Service:
    • SQL 缓存依赖:它很稳定,但对我们的应用程序来说速度很慢
    • 分离缓存服务:速度更快但不稳定,因为我们会遇到瓶颈问题。你有解决这个问题的办法吗?
  2. 当我们将数据库系统升级到集群服务器时,缓存系统的稳定方案是什么?

谢谢。

【问题讨论】:

  • Windows Server AppFabric

标签: asp.net .net sql-server caching load-balancing


【解决方案1】:

见过 NCache。它是免费的(Express 版本。对于专业版和企业版,只有 Developer Machine 是免费的)并且与 asp.net 兼容。

NCache 是一种速度极快且可扩展的内存分布式缓存,用于缓存应用程序数据。 NCache 还在网络场中存储 ASP.NET 会话状态会话。与负载均衡器一起工作,配置简单。

【讨论】:

    【解决方案2】:

    我们使用 memcached 并且没有遇到任何问题。非常可靠且实施起来非常简单。你是什​​么意思你会遇到第三方缓存解决方案的瓶颈问题?我们已经运行了大约一年左右,并且在这方面拥有丰富的经验。

    编辑: 我们的环境在 3 个 Web 服务器和 2 个 SQL 服务器之间实现负载平衡。

    我更喜欢第三方的另一个原因是因为您可以缓存其中的任何内容,对象、数据等。

    设置:http://syntaxhelp.com/ASP.NET/Cache/memcache 参考文献:http://code.google.com/p/memcached/wiki/NewStart

    【讨论】:

    • 感谢您的分享,罗伯特。您是否在所有 3 个 Web 服务器上实现了 memcache?有没有办法在它们之间同步memcache?
    • 例如:当一个数据记录被更新(从 1 个网络服务器)时,我如何通知另外 2 个?
    • 不,它没有在所有三台服务器上运行,我相信我们让它在单独的服务器上运行(我没有参与实施)所以当更新记录时,不会更新其他服务器缓存了什么。
    【解决方案3】:

    Memcache 适用于大多数用例,但如果您有许多服务器(每个服务器都拥有整个 Memcache 池的一个分片),那么最终会产生大量的网络流量,因为数据必须从它所在的服务器传输到在哪里使用。

    在某些高读/低写的用例中,最好让每台服务器都保存所有使用最频繁的数据的本地副本,然后让单独的服务负责可靠地更新所有副本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      相关资源
      最近更新 更多