Ich baue eine Microservice-Architektur und ich bin auf der Suche nach einer guten Möglichkeit, Ereignisse zu streamen.Was ist eine gute Event-Store/Stream-Middleware für Service-orientierte/Microservice-Architekturen
Derzeit habe ich einen Dienst, der ein Ereignis veröffentlicht, auf das drei andere Dienste in einer bestimmten Weise reagieren müssen, die Reaktion auf dieses Ereignis soll jedoch nur einmal erfolgen.
Im Moment verwende ich RabbitMQ und mein Dienst veröffentlicht drei Nachrichten in separaten Warteschlangen, und jeder abonnierende Dienst hört eine Warteschlange. Daher kann nur eine Dienstinstanz die Nachricht annehmen und darauf reagieren.
Allerdings mag ich diesen Ansatz nicht, denn wenn ich einen neuen Abonnenten hinzufügen möchte, muss ich eine neue Warteschlange für den Veröffentlichungsdienst hinzufügen.
Ich suche im Grunde nach einer Art Middleware für einen Ereignisstrom, der mehrere Dienste einem Ereignis zuhören lässt, aber sicherstellt, dass nur eine Instanz jedes Dienstes tatsächlich auf das Ereignis reagiert.
Ich habe noch nichts gefunden, also würde ich mich über Vorschläge freuen.
Der Round Robin-Ansatz ist der Standard in Kaninchen mq. Viele Hörer in einer Warteschlange, aber nur ein Verbraucher. –
Ja, aber ich brauche eine separate Warteschlange für jeden konsumierenden Dienst. So passiert etwas in Service A und Service B, C und D müssen alle auf dieses Ereignis reagieren. Wenn ich eine Warteschlange verwende, wird nur einer der Dienste reagieren, weil die Nachricht verbraucht wird. Wenn ich drei Nachrichten in derselben Warteschlange veröffentliche, besteht die Möglichkeit, dass zwei oder drei Instanzen eines Dienstes die Nachricht konsumieren, sodass die Reaktion immer noch ungenau ist. Also brauche ich drei separate Warteschlangen, eine für jeden Dienst. Wenn Service E ebenfalls auf das Ereignis hören muss, muss ich Service A ändern und isolierte Änderungen durchbrechen. – KaffeeKaethe
(Forts.) Die Änderung, die ich vornehmen muss, ist das Veröffentlichen des Ereignisses in einer vierten Warteschlange, die von Service E konsumiert wird. – KaffeeKaethe