2016-04-20 7 views
5

In der SignalR Performance Seite können wir lesen:Signaler SQL Scaleout: Nachteile der Verwendung mehrerer Streams?

Ein Strom in diesem Zusammenhang ist eine Skala Einheit der ScaleOut Anbieter verwendet wird; Dies ist eine Tabelle, wenn SQL Server verwendet wird, ein Thema, wenn Service Bus verwendet wird, und ein Abonnement, wenn Redis verwendet wird. Jeder Stream gewährleistet geordnete Lese- und Schreiboperationen; ein einzelner Stream ist ein potentieller Engpass Skala, so kann die Anzahl der Ströme erhöht werden, dass Engpass zu helfen zu reduzieren. Wenn mehrere Streams verwendet werden, verteilt SignalR automatisch (shard) Nachrichten über diese Streams in einer Weise, die sicherstellt, dass Nachrichten, die von einer bestimmten Verbindung gesendet werden, in Ordnung sind.

var connectionString = "(your connection string)"; 
var config = new SqlScaleoutConfiguration(connectionString) { 
    TableCount = 3, 
    MaxQueueLength = 50 }; 
GlobalHost.DependencyResolver.UseSqlServer(config); 

Aber die TableCount ist standardmäßig 1 in SQL ScaleOut:

Der Strom count (. Dh Tabelle in SQL) kann wie folgt eingestellt werden. Wenn das ein Flaschenhals ist, warum ist es standardmäßig 1? Was ist, wenn ich es auf 50 setze?

Die Dokumentation gibt keinerlei Anhaltspunkt zu geben, welchen Wert zu entscheiden. Sollte ich es auf 1, 3, 10, 1000 setzen? Was sind Vor- und Nachteile eines großen Wertes? Erhöht es nur die Latenz?

Antwort

Verwandte Themen