/ / Azure-Rollen und -Instanzen - Azure, Azure-Worker-Rollen, Azure-Web-Rollen

Azure Roles and Instances - Azure, Azure-Worker-Rollen, Azure-Web-Rollen

Kann ich eine Webrolle und eine Worker-Rolle in derselben Instanz ausführen lassen oder muss ich zwei separate Hosting-Instanzen erwerben und den doppelten Betrag zahlen, den ich sonst hätte?

Ich habe eine WCF-Web-API, die ich auf Azure hosten möchte. Ich habe auch eine Arbeiterrolle, die eine Warteschlange in Azure Storage abhört. Jedes Mal, wenn eine Nachricht zur Warteschlange hinzugefügt wird, erhält sie diese und führt je nach Nachricht eine kleine Aufgabe aus.

Ich habe mich gefragt, ob ich diese beiden auf derselben Instanz ausführen kann oder nicht.

Antworten:

3 für die Antwort № 1

"Worker Role" und "Web Role" sind einfachVorlagen für "Windows Server 2008 mit IIS ausgeführt" und "Windows Server 2008 ohne IIS". Der Schlüssel ist, dass eine "Rolle" eine Definition einer virtuellen Windows Server-Maschine ist. Für jede "Rolle" haben Sie eine oder mehrere Instanzen.

In Windows Azure können beide Rollentypen Software installieren, Registrierungseinstellungen usw. in einem Startskript oder ändern OnStart() Handler, und mit beiden können Sie Code im ausführen Run() Methode.

In Ihrem Fall können Sie Ihren WCF-Webdienst in einer Webrolle und dann in Ihrer ausführen Run() Methode (in derselben Rolle): Starten Sie einen Prozess, der auf Nachrichten wartet, die von Ihren WCF-Web-Services gepostet werden. Keine Notwendigkeit, eine neue Rolle zu haben.

Jetzt: Wenn Sie sich in Situationen mit hohen Stückzahlen befinden, möchten Sie möglicherweise Ihren Code in separate Rollen aufteilen, sodass Sie ihn unabhängig voneinander skalieren können (sowohl in der VM-Größe als auch in der VM-Menge).

Ich habe eine weitere Antwort dazu veröffentlicht Hier.


0 für die Antwort № 2

Das hängt ganz von Ihrer Anforderung ab. Sie können einfach eine Worker-Rolle haben, die einen externen Endpunkt wie beschrieben verfügbar macht Hier und stellen Sie einen WCF-Service bereit. Sie können auch eine Webrolle als WCF-Dienst einrichten und einen Hintergrundthread starten, der die Warteschlange überprüft. Was macht der Arbeiter mit der Nachricht? Welcher Prozess wird durchgeführt? Das wirkt sich auch auf die Lösung aus.

Wichtig ist, dass die Skalierungsanforderungen zwischen dem WCF-Service und den Aufgaben zum Abrufen der Warteschlange identisch sind. Wenn es sich um eine Einzelrolle handelt, sollte dies gut genug sein.