.NET-Core-Microservice mit RabbitMQ
Ich bin Hobeln zu verwenden Microservice-Architektur für ein Projekt. Die ausgewählte Technologie-stack ist .NET Core
mit Docker
und RabbitMQ
als eine einfache service-bus, und dies sollte in der Lage sein, um die Bereitstellung auf Linux
.
Können sagen, ich habe eine Payment
service und eine Order
Service, ich will jeden dieser Dienste zu setzen REST
Endpunkte. Deshalb habe ich mir gedacht, machen diese beiden Dienste als .NET Core Web APIs
.
Aber das problem ist die inter-service-Kommunikation mit RabbitMQ
. Immer wenn ich eine neue order
ich veröffentlichen möchten, ein event mit RabbitMQ
und dann hören Sie, dass die Veranstaltung in Payment
service, um bestimmte Operationen durchzuführen (Datenbank-updates). Aber da diese Web APIs
ich glaube nicht, dass es möglich ist, zu hören, zu Veranstaltungen, die, wie ich beschrieben. (Ich fühle mich wie ich haben könnte, um etwas wie eine Konsole-Anwendung, um Ereignisse zu abonnieren.)
Ich möchte zu finden, die am besten geeignete Methode, dies zu erreichen mit den best practices unter Berücksichtigung der Skalierbarkeit und Erweiterbarkeit des Systems.
- ASP.NET Kern-Anwendungen sind Konsolenanwendung. Sie können einfach erstellen Sie ein Objekt, das Sie hören Nachrichten beim Start der Anwendung zusammen mit WebAPI Registrierung..
- Danke für die Antwort. Könnten Sie bitte erklären, ein wenig ist Ihr Vorschlag?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie eine Anwendung erstellen mit .NET Core, die Sie bootstrap Dinge in
Main
- Methode, und dann registrieren Sie Dienste und middle-ware inStartup
Klasse. Bevor Sie also damit beginnen web-host Sie können auch erstellen und starten Sie Ihre messaging-Dienste:UPDATE:
In ASP.NET Core 2.0
IHostedService
- Schnittstelle wurde eingeführt, um zu erreichen das gleiche Ziel und nennen Sie dieses Szenario in Ihre Ankündigung. Hier ist ein Beispiel, wie umsetzen.