【问题标题】:Azure Redis Cache max connections reached已达到 Azure Redis 缓存最大连接数
【发布时间】:2016-11-22 12:05:49
【问题描述】:

我正在使用 Azure Redis 缓存来存储一些快速查找数据,并且此缓存由 10 个客户端应用程序读取/连接。所有的应用程序都是用 .NET 4.6 编写的,这包括 ASP.NET MVC Web 应用程序、Web API 和少数每 1 秒运行一次的工作角色。所有客户端都使用 StackExchange.Redis 连接到缓存。但是,我遇到了间歇性超时,并且我观察到在 Azure 门户中,最大连接数已达到 1000(对于我的定价层)。由于我只有 10 个客户端应用程序,而且这些应用程序都不是多线程的,那么什么可以创建到缓存的 1000 个连接?

对于缓存客户端,我是否可以遵循任何最佳实践?

【问题讨论】:

    标签: c# azure caching redis azure-redis-cache


    【解决方案1】:

    这和这个问题很相似:Why are connections to Azure Redis Cache so high?

    以下是我们为大多数客户推荐的最佳做法:

    1. 在连接字符串中将 abortConnect 设置为 false
    2. 创建一个单例连接多路复用器并重用它。这对于大多数情况来说已经足够了。一些高级场景可能需要为每个应用程序创建多个 connectionMultiplexer 对象,但大多数情况下只需一个即可。我建议遵循此处显示的编码模式:https://azure.microsoft.com/en-us/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/#connect-to-the-cache
    3. 让 ConnectionMultiplexer 处理重新连接 - 除非您对代码进行了非常彻底的测试,否则不要自己动手。我见过的大多数连接泄漏是因为人们正在重新创建 connectionMultiplexer 但未能处理旧的。在大多数情况下,最好让多路复用器重新连接。

    【讨论】:

      猜你喜欢
      • 2014-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多