TL; DR - Was ist der beste Weg, um RabbitMQ über REST API einem Verbraucher zugänglich zu machen?API-Design rund um RabbitMQ für Publisher/Abonnent
Ich erstelle eine API, um Nachrichten von RabbitMQ zu veröffentlichen und zu konsumieren. In meinem aktuellen Design wird der Publisher eine POST-Anfrage stellen. Meine API leitet die POST-Anfrage an die Vermittlungsstelle weiter. Auf diese Weise muss der Publisher die Serveradresse, den Namen usw. während der Veröffentlichung nicht kennen.
Jetzt ist der Consumer-Teil, wo ich nicht sicher bin, wie es weitergeht.
Am Anfang wird es keine Warteschlangen geben. Wenn ein neuer Verbraucher ein THEMA abonnieren möchte, erstelle ich eine Warteschlange und binde sie an die Börse. Ich brauche Hilfe mit Antworten auf einige Fragen -
- Sobald ich eine Warteschlange für den Verbraucher erstellen, was ist der nächste Schritt, um den Verbraucher Nachrichten aus dieser Warteschlange erhalten?
- Ich lasse den Verbraucher fragen nach einer Charge von Nachrichten (sagen wir 50 Nachrichten) aus der Warteschlange. Wenn ich dann vom Kunden eine Bestätigung erhalte, sende ich die nächsten 50 Nachrichten aus der Warteschlange. Wenn ich keine Bestätigung erhalte, setze ich die 50 Nachrichten zurück in die Warteschlange. Ist das nicht teuer in Bezug auf das Öffnen und Schließen der Verbindung zwischen dem Verbraucher und meiner API?
Wenn es ein besserer Ansatz ist dann bitte
Ugh, schwer zu beantworten, ohne ein echtes Bedürfnis zu kennen. Bitte fügen Sie Ihre Zielsprache hinzu, damit Sie eine bessere Empfehlung erhalten. Kurz gesagt: 1) um konsumieren zu können, müssen Sie anfangen zu konsumieren, auf AMQP-Protokoll-Ebene ist es eine 'basic.consume'-Methode, in Client-Bibliotheken unabhängig von der Sprache sollte es in ähnlicher Weise aufgerufen werden. 2) Sie senden grundsätzlich keine Nachrichten von der Warteschlange zum Verbraucher, es ist Broker (RabbitMQ) Verantwortung. Sie senden Nachrichten an Vermittlungsstellen, binden Warteschlangen an Austauschknoten und verwenden Warteschlangen. Aber Sie können zwischen Verbraucher und Absender interagieren, wenn es Ihren Bedürfnissen entspricht. Reale Kosten sollten gemessen werden. – pinepain