-1

Ich habe ein bestehendes System, das Nachrichten über MassTransit zu einem Azure Service Bus Thema namens CompanyName.SystemName.Messages.SomethingGotUpdated veröffentlicht. Wie kann ich ein neues System mit Rebus konfigurieren, um ein Abonnent für dieses spezielle Thema zu sein, und dann alle Nachrichten an den entsprechenden Handler weiterleiten?Wie interoperieren Sie mit Azure Service Bus-Themen, die von MassTransit mithilfe von Rebus erstellt wurden?

Ich schaute auf die Dokumentation, konnte aber nicht wirklich herausfinden, wie dies zu erreichen ist. Jede Hilfe wird sehr geschätzt!

Antwort

1

Sie sollten dies tun, indem Sie einen MassTransit-basierten Empfänger erstellen, der die Nachrichten des angegebenen Themas empfängt und dann die Nachrichten (unter Verwendung von Rebus 'one-way client) an Ihren Rebus-Endpunkt weiterleitet. Der Grund, warum Sie es so machen sollten, ist, dass MassTransit und Rebus den Azure Service Bus höchstwahrscheinlich auf eine etwas andere Art und Weise und mit sehr unterschiedlichen Headern auf den Nachrichten verwenden, was bedeutet, dass die beiden Service-Busse nicht leicht zu bekommen sind drahtkompatibel.

Manche Leute könnten den Drang verspüren, sich irgendwie aus solchen Problemen herauszuarbeiten, wahrscheinlich durch einen Schritt in die incoming messages pipeline, die MassTransit-Header auf Rebus-Header abbildet, aber ich befürchte, dass Sie Ihren Schritt nicht ausführen lassen Rebus erfordert, dass ein bestimmter Nachrichten-ID-Header vorhanden ist, andernfalls wird die Nachricht sofort in die Fehlerwarteschlange verschoben.

Mein Vorschlag ist, Ihre MassTransit-basierte System-Sache für sich zu betrachten, als ob sie ein völlig separates Netzwerk für die Kommunikation verwendet hätte, und dann Ihre Rebus-basierten Teile ein eigenes System zu betrachten.

Verwandte Themen