2016-03-30 12 views
0

Ich frage mich, warum brauchen wir routing key, um Nachricht von exchange zu Warteschlange zu leiten. Können wir nicht den Namen der einfachen Warteschlange verwenden, um die Nachricht zu routen? Im Falle der Veröffentlichung in mehreren Warteschlangen können wir auch mehrere Warteschlangennamen verwenden. Kann jemand auf das Szenario hinweisen, in dem wir tatsächlich Routing-Schlüssel benötigen, ist der Name der Warteschlange nicht ausreichend.Warum brauchen wir Routing-Schlüssel in Rabbitmq

Antwort

1

Es gibt verschiedene Arten von Austausch. Der Fanout-Austausch ignoriert den Routing-Schlüssel und sendet Nachrichten an alle Warteschlangen. Aber so gut wie alle anderen Exchange-Typen verwenden den Routing-Schlüssel, um festzustellen, welche Warteschlange, wenn überhaupt, eine Nachricht erhält.

Die tutorials on the RabbitMQ website beschreibt mehrere Anwendungsfälle, in denen verschiedene Austauscharten nützlich sind und wo der Routing-Schlüssel relevant ist.

Zum Beispiel zeigt tutorial 5, wie man einen Themenaustausch verwendet, um Protokollnachrichten in verschiedene Warteschlangen zu routen, abhängig vom Protokolllevel jeder Nachricht.

Wenn Sie mehrere Warteschlangen ausrichten möchten, müssen Sie sie an einen Fanout-Exchange binden und diesen Exchange in Ihrem Publisher verwenden.

Sie können in Ihrem Herausgeber nicht mehrere Warteschlangennamen angeben. In AMQP veröffentlichen Sie keine Nachricht in Warteschlangen, Sie veröffentlichen eine Nachricht in einer Exchange. Es ist die Austauschverantwortlichkeit, die relevanten Warteschlangen zu bestimmen. Es ist möglich, dass eine Nachricht überhaupt an keine Warteschlange weitergeleitet und einfach gelöscht wird.

+0

ok. Warum brauchen wir den Routing-Schlüssel zwischen Exchange und Queue? Wir können den Fan-Out-Austausch verwenden, um die Nachrichten an alle Warteschlangen zu senden. Ähnlich, wenn wir eine bestimmte oder mehrere Warteschlangen senden möchten. Können wir nicht den Namen der Warteschlange selbst verwenden? Warum brauchen wir spezielle "Routing-Key" -Konzept – Naresh

+0

Sie können den Warteschlangennamen in den Routing-Schlüssel und veröffentlichen Sie auf die "" Standard-Austausch (ein Austausch mit dem leeren String): Ihre Nachricht wird in der Warteschlange, die Sie wollen. Routing-Schlüssel und verschiedene Arten von Austauschen bieten mehr Flexibilität beim Weiterleiten von Nachrichten an Warteschlangen. Darüber hinaus können Sie Publisher und Konsumenten weiter entkoppeln. Ein weiterer Vorteil: Es bewegt das Routing-Wissen vom Herausgeber zum Bus, wo es hingehört. –