Sollte ich in der Nähe der Kanal/Anschluss nach jeder veröffentlichen?
Ich bin mit amqplib in Node.js und ich bin nicht klar über die besten Praktiken in meinem code.
Im Grunde meinem aktuellen code ruft die amqp.connect()
wenn Sie den Node-server gestartet wird, und dann verwendet einen anderen Kanal für die einzelnen Erzeuger und die einzelnen Verbraucher, die eigentlich nie schließen, einer von Ihnen. Ich würde gerne wissen, ob das irgendeinen Sinn, oder sollte ich den Kanal, zu veröffentlichen, und schließen Sie es jedes mal, wenn ich veröffentlichen will, eine Nachricht. Und was ist mit der Verbindung? Ist, dass eine "gute Praxis" zu verbinden, einmal, und dann ist es offen halten für die Lebensdauer von meinem server?
Auf der Consumer-Seite - kann ich mit einer einzigen Verbindung und einem einzigen Kanal zu hören, die auf mehrere Warteschlangen?
Danke für alle Erklärungen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Allgemeinen, es ist nicht eine gute Praxis, öffnen und schließen von verbindungen und Kanäle pro Nachricht. Verbindungen sind lang gelebt, und es braucht Ressourcen, um die öffnung und schließen Sie Sie. Für die Kanäle sind, teilen Sie die TCP-Verbindung mit der Verbindung, so dass Sie mehr leicht, aber Sie werden immer noch verbrauchen Speicher und sollte auf jeden Fall nicht offen gelassen werden, nachdem das getan mit Ihnen.
Ist es empfehlenswert, einen Kanal pro thread, und ein Kanal pro Verbraucher. Aber für die Veröffentlichung ist es vollkommen ok ist, den gleichen Kanal verwenden. Aber Bedenken Sie, dass je nach den Operationen, die Protokoll töten könnte den Kanal in bestimmten Situationen (z.B. queue-Existenz-check), also bereiten Sie sich für, die. Es ist auch weich (konfigurierbar) und hard (in der Regel 65535) Grenzwerte für die maximale Anzahl der Kanäle auf viele client-Implementierungen.
Also zu summieren, je nach Anwendungsfall verwenden Sie ein bis ein paar verbindungen, offene Kanäle, wenn Sie diese benötigen, und teilen Sie Sie, wenn es Sinn macht, aber denken Sie daran, Sie zu schließen, wenn Sie fertig sind.
Den rabbitmq Dokumentation erklärt die Natur der verbindungen und Kanäle (Ende des Dokuments). Und die akzeptierte Antwort auf diese Frage, hat gute Informationen über das Thema.