2016-11-20 3 views
2

Ich plane Queue-basierte Kommunikation zwischen einer Reihe von Web-Rollen und eine Reihe von Arbeitern Rollen eines Muster des von Microsoft verwenden zu implementieren:Azure Antwort Warteschlangen-Management

enter image description here

Was noch nicht klar ist, Mir geht es darum, die Antwortwarteschlangen zu verwalten. Jeder Absender (Webrolle) sollte wahrscheinlich einen Antwortwarteschlangennamen in einer Nachricht enthalten, so dass, wenn einer der Empfänger die Nachricht verarbeitet, er nur an den Ursprungssender signalisiert. Dies ist wichtig, da die Webrollen mit ARR (Sticky Sessions) ausgeglichen sind und Verarbeitungsergebnisse an Benutzerbrowser mit SignalR weitergeleitet werden.

Ich plane, eine Antwortwarteschlange zu erstellen, wenn eine Webrolleninstanz den Computernamen als Warteschlangenname verwendet. Aber wegen der automatischen Skalierung werde ich bald mit einer Reihe von verlassenen Warteschlangen enden, oder? Ich könnte so etwas wie einen Warteschlangen-Pool implementieren, indem ich ihn in der SQL DB behalte und die alten lösche, aber diese zusätzliche Komplexität mag ich nicht. Gibt es einen leichteren Weg?

Antwort

1

Haben Sie über die Verwendung von Azure Service Bus Topics/Subscriptions nachgedacht?

Sie können ein einzelnes Thema als Ihre Antwort-Warteschlange haben. Jeder Absender (Web-Rolle) kann dann dieses Thema mit seiner eigenen set of subscription filters (wahrscheinlich nach dem Namen der Web-Rollen-Instanz überprüfen) abonnieren, um die dafür vorgesehene Antwortnachricht zu erhalten.

Es erspart Ihnen die Komplexität der Verwaltung mehrerer Antwortwarteschlangen.

Verwandte Themen