【问题标题】:Would Ncache Express solve this scalability issue or would I need to upgrade to premier edition?Ncache Express 会解决这个可扩展性问题,还是我需要升级到高级版?
【发布时间】:2012-05-04 13:27:10
【问题描述】:

我有一个使用 nhibernate 和 SQL 服务器的 asp.net-mvc3 网站。我有 2 个负载平衡的 Web 服务器。这是一个读取繁重的数据库(不太关心写入性能),但随着查询变得越来越复杂(大量表连接),它的性能大大降低。

根据我阅读的 cmets ,最大的胜利是在前面放置一个分布式缓存。我查看了支持 nhibernate 和 I found NCache Express 的 Windows 上的免费选项。我显然会做一堆测试和玩,但我想看看(在我浪费很多时间之前)这个快速版本是否会在可行的解决方案方面完全限制我。我在这里看到了版本比较,我认为我没有看到任何阻止程序,但我想从使用 NCache Express 和 nhibernate 的任何人那里获得反馈,看看是否有任何问题。

另外,如果有替代产品建议可以更有效地解决这个问题,那也很好。

【问题讨论】:

  • 在转向任何缓存解决方案之前,我强烈建议彻底优化 DB 端的事物(数据模型、索引、SQL 语句、查询计划)...使用分析器查找缓存中的任何瓶颈应用程序并采取相应措施...检查硬件(数据库服务器、网络性能等)。如果真的 ALL 都已优化并且您仍然对性能不满意,那么请检查缓存...
  • 您是否尝试过使用 ASP.NET 的缓存机制缓存查询结果?还不够吗?在任何情况下,如果您需要大量的表连接,您可能在特定情况下使用了错误的模式。也许您需要对表进行非规范化以减少连接。

标签: sql-server asp.net-mvc nhibernate ncache


【解决方案1】:

如前所述,您应该首先优化您的数据库,当然您已经在这样做了。

我还在一个有 2 台服务器的网站上工作,并且在选择缓存提供程序的过程中,我已经与MemcacheD 达成了一致。它非常强大,设置起来非常简单。 NCache Expresse 也可以正常工作,没有任何问题,但我建议使用 Memcache,因为 NCache express 有 2 个服务器的限制,所以如果你需要添加一个额外的节点,无论如何你都必须更改。

另外,如果你的服务器有 Windows 2008,你应该检查微软的 AppFabric,它非常好。

【讨论】:

  • @是否支持 memcache 并建议在 windows 上使用?
【解决方案2】:

使用它来评估您需要 NCache 提供哪些功能,例如SQL依赖和东西 http://www.alachisoft.com/ncache/edition-comparison.html

除此之外,我认为您不需要升级

关于替代品,我没有使用很多,所以我在这方面不能说什么:)

PS:复制非常适合读取密集型应用程序,不适合写入密集型应用程序。

【讨论】:

    【解决方案3】:

    您可以尝试将 appfabric 作为 nhibernate 二级缓存。不过,您应该在与应用程序节点不同的服务器上运行它。

    【讨论】:

      【解决方案4】:

      您尝试过吗,Microsoft Velocity?

      http://msdn.microsoft.com/en-us/magazine/dd861287.aspx

      【讨论】:

      • Velocity 是 AppFabric 的旧名称
      猜你喜欢
      • 2014-10-22
      • 2011-01-16
      • 2023-04-06
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-10
      相关资源
      最近更新 更多