2016-07-19 19 views
4

Ich verwende Azure Redis Cache zum Speichern von schnellen Suchdaten und dieser Cache wird von 10 Client-Anwendungen gelesen/verbunden. Alle Anwendungen sind in .NET 4.6 geschrieben. Dazu gehören die ASP.NET MVC-Webanwendung, die Web-API und einige Worker-Rollen, die alle 1 Sekunde ausgeführt werden. Alle Clients verwenden StackExchange.Redis für die Verbindung mit dem Cache. Ich erhalte jedoch zeitweilige Zeitüberschreitungen und habe festgestellt, dass in Azure Portal die maximale Anzahl an Verbindungen 1000 erreicht hat (für meine Preisstufe). Da ich nur 10 Client-Anwendungen habe und keine Multithread-Anwendungen, was könnte die 1000 Verbindungen zum Cache erstellen?Azure Redis Cache maximale Anzahl erreichter Verbindungen

Gibt es Best Practices, die ich für die Cache-Clients verwenden kann?

Antwort

5

Dies ist sehr ähnlich zu dieser Frage: Why are connections to Azure Redis Cache so high?

Hier sind die besten Praktiken, die wir für die meisten Kunden empfehlen:

  1. Satz abortConnect auf false in Ihrer Verbindungszeichenfolge
  2. eines Singletons erstellen connectionMultiplexer und wiederverwenden. Dies ist für die meisten Szenarien ausreichend. Für einige erweiterte Szenarien müssen möglicherweise mehrere connectionMultiplexer-Objekte pro Anwendung erstellt werden, die meisten sind jedoch nur mit einer einzigen ausführbar. Ich würde empfehlen, dem Codierungsmuster zu folgen, das hier gezeigt wird: https://azure.microsoft.com/en-us/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/#connect-to-the-cache
  3. Lassen Sie den ConnectionMultiplexer das Wiederverbinden handhaben - tun Sie es nicht selbst, es sei denn, Sie haben Ihren Code sehr gründlich getestet. Die meisten Verbindungslecks, die ich gesehen habe, sind, weil Leute den connectionMultiplexer wieder herstellen, aber den alten nicht beseitigen. In den meisten Fällen ist es am besten, den Multiplexer einfach die Verbindung herstellen zu lassen.