azure-eventhub

___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ qstnhdr ___ SignalR Skalierung mit Azure EventHub ___ answer30418191 ___

Ich kann nicht mit den genauen Einzelheiten von SignalR sprechen; Sie können jedoch EventHubs grundsätzlich für eine Rückwandplatine verwenden, müssen sich jedoch der Einschränkungen bewusst sein.

Das Backplane-Scaleout-Muster von SignalR geht davon aus, dass alle Server Zugriff auf alle Nachrichten haben und vermutlich alles verarbeiten werden. Dies bietet eine ziemlich klare Begrenzung dessen, was eine einzelne Rückwandplatine auf Standardhardware oder in der Cloud leisten kann. In einer typischen Cloud können Sie möglicherweise einen Datendurchsatz von 100 MB / s (schöne runde Zahl für 1 GB / s nic), oberes Ende der Standardhardware (und Azures HPC-Maschinen) 1000 MB / s (10 GBit / Sekunde nic) aufrechterhalten.

Die Frage ist also, ob Azure EventHubs Sie zu dieser architektonischen Begrenzung des Durchsatzes bringen können?

Die Antwort darauf ist einfach ja. 100 oder 1000 Partitionen bieten Ihnen einen ausreichenden Schreibdurchsatz und ausreichend Lesekapazität für 2 Server.

Die nächste Frage ist, wenn Sie nur 100MB / Sekunde in Ihrer Rückwandplatine pro Server lesen müssen, wie viele Server die Daten lesen können (dh wenn Sie 100MB / Sekunde von Aktienzellen senden, bei denen die Datengröße nicht zunimmt) Anzahl der Server).

Die Antwort hier ist, so viele Sie wollen, aber es gibt ein paar Tricks.

EventHubs wird skaliert, indem der Datenstrom partitioniert wird. Jede Partition hat einen maximalen Lesedurchsatz von 2 MB / s, der von allen Lesern gemeinsam genutzt wird. Sie können jedoch einfach die Anzahl der Partitionen multiplizieren, um die Aufteilung auszugleichen (das Hinzufügen von mehr als 32 erfordert das Gespräch mit Microsoft). Die Designannahme von EventHubs (wie Kafka und Kinesis) ist, dass der Verbrauch auf Maschinen aufgeteilt wird, wodurch die oben diskutierte Rückwandbegrenzung vermieden wird. Verbraucher, die zusammenarbeiten, um den Stream zu lesen, sind eine Consumer-Gruppe (Azure scheint eine benannte CG sogar für einen direkten Leser zu benötigen), in diesem Backplane-Modell gibt es keine logischen Verbrauchergruppen, also die Frage ist, wie man die Daten liest / p>

Die einfachste Lösung ist wahrscheinlich, den High-Level-Autoport-Ereignisprozessor-Host zu verwenden, wobei jeder Server seine eigene Consumer-Gruppe mit einem festen Namen ist. Mit nur einem Server in jeder Verbrauchergruppe erhält jeder Server alle Partitionen (500 für 10 Server erreichen 100 MB / Sekunde, aka 11.000 $ / Monat + 0,028 $ pro Million Ereignisse).

Dieser Ansatz hat eine wichtige Einschränkung: Sie sind auf 20 Kundengruppen pro Event-Hub beschränkt. So können Sie Event Hubs miteinander verketten oder einen Baum mit dieser Methode erstellen, um beliebige Zahlen zu erhalten.

Die andere Option besteht darin, direkte Clients zu verwenden, die eine Verbindung zu bestimmten Partitionen herstellen. Eine einzelne Partition in einer Consumer-Gruppe kann 5 Leser haben , wodurch weniger Bedarf besteht, Hubs zu verketten um einen Faktor von 5, wodurch die Kosten pro Ereignis um den Faktor 5 reduziert werden (verringert nicht die Durchsatzeinheitsanforderungen).

Zusammenfassend sollte es nicht zu einem Flaschenhals werden, bevor eine Rückwand zu einem Flaschenhals werden würde. Aber bauen Sie nicht etwas auf einer Rückwandplatine auf, wenn Sie erwarten, dass es im Datenverkehr 100 MB / Sekunde überschreitet.

Ich habe nicht über Latenz gesprochen, Sie müssen das selbst testen, aber die Chancen stehen gut, dass Sie nicht HFT in der Cloud machen und es gibt einen Grund, warum Echtzeit-Spiele typischerweise in Instanzen sind.

    
___ tag123signal ___ ASP.NET SignalR ist eine Bibliothek für ASP.NET-Entwickler, die es unglaublich einfach macht, Ihren Anwendungen Echtzeit-Webfunktionen hinzuzufügen. Was ist die "Echtzeit-Web" -Funktionalität? Es ist die Möglichkeit, dass Ihr serverseitiger Code Inhalte in Echtzeit an die verbundenen Clients sendet. ___ tag123azure ___ Microsoft Azure (früher Windows Azure) ist eine Platform-as-a-Service- (PaaS-) und Infrastructure-as-a-Service- (IaaS-) Cloud-Computing-Plattform von Microsoft. Die Benutzer der Plattform können ihre Anwendungen auf Cloud-Hosting bereitstellen, wobei sie von On-Demand-Diensten, flexiblen Skalierungen und einer hoch verwalteten Umgebung im Pay-as-you-go-Modus profitieren. ___ tag123aspnetwebsocket ___ AspNetWebSocket-Klasse ___ qstntxt ___

Ich suche eine Hochfrequenz-Skalierungslösung für SignalR. Ich frage mich, ob ich es mit Azure EventHub machen kann. Wenn ich EventHub als Backplane für SignalR-Nachrichten verwende, wird es für mich ein Engpass?

Ich habe diese Seite überprüft, aber es gibt nichts über EventHub, wie es ist ziemlich neu.

    
___ tag123azureeventub ___ Microsoft Azure EventHubs ist ein hoch skalierbares System für die Aufnahme von dauerhaften Ereignissen mit hohem Durchsatz und geringer Latenz in der Azure-Cloud. EventHubs dient als Ereignispuffer für Anwendungen zum Verarbeiten von Ereignissen mit variablen Lastprofilen. ___
1
Antwort

SignalR Skalierung mit Azure EventHub

Ich suche eine Hochfrequenz-Skalierungslösung für SignalR. Ich frage mich, ob ich es mit Azure EventHub machen kann. Wenn ich EventHub als Backplane für SignalR-Nachrichten verwende, wird es für mich ein Engpass? Ich habe diese Seite überpr...
21.05.2015, 18:01