2017-02-18 5 views
0

Ich habe eine Knoten-Anwendung, die RabbitMQ verwenden wird und ich benutze amqplib, um darauf zuzugreifen. Ich verstehe, dass TCP/IP-Verbindungen zu RabbitMQ und teure, Kanäle sind billig, so erstellen Sie eine Verbindung und dann mehrere Kanäle.AMQP NodeJS Verbindung

Worüber ich etwas verwirrt bin, ist, wie ich diese eine Verbindung bewerte, die in der gesamten Anwendung verwendet werden kann? Die meisten Tutorials weisen darauf hin, dass eine Verbindung für einen bestimmten Zweck offen ist und dann wieder geschlossen wird, um sie bei der nächsten Anforderung wieder zu öffnen.

Ich würde denken, dass dies zu mehreren Verbindungen führen würde, wenn mehrere Benutzer eine Aktion versuchten, die RabbitMQ-Zugriff zur gleichen Zeit erforderte.

Antwort

0

Ich nehme an, Ihre Benutzer sind nur mit Ihrem Server verbunden, der anders als jeder Benutzer direkt an Rabbitmq angeschlossen ist. Dann können Sie serverseitig nur eine Verbindung zu rabbitmq halten.

Für diesen Zweck würde ich empfehlen, eine module zu erstellen, um Ihre Verbindung über Ihre Anwendung zu verfolgen.

Beachten Sie, dass AMQP hat ein heartbeat Merkmal:

AMQP 0-9-1 bietet eine Herzschlag-Funktion, um sicherzustellen, dass die Anwendungsschicht zeitnah über gestörte Verbindungen findet (und auch völlig unempfänglich Peers). Heartbeats schützen auch gegen bestimmte Netzwerkgeräte, die "leere" TCP-Verbindungen beenden können.

Standardmäßig ist amqplib's hearbeat auf 0 gesetzt, was bedeutet, dass kein Heartbeat vorliegt.