2017-02-18 121 views
0

我有一個Node應用程序,它將使用RabbitMQ,我正在使用amqplib來訪問它。據我所知,與RabbitMQ的TCP/IP連接和昂貴的通道很便宜,因此創建一個連接,然後創建多個通道。AMQP NodeJS連接

我有點困惑的是我如何評價一個可以在應用程序中使用的連接?大多數教程似乎表明,連接是爲某個目的而打開的,然後再次關閉,以便在下次需要時再次打開。

如果多個用戶試圖同時需要RabbitMQ訪問的操作,我會認爲這會導致多個連接。

回答

0

我想你的用戶只連接到你的服務器,這是不同的,每個用戶直接連接到rabbitmq。然後,在服務器端,您只能保持一個連接到rabbitmq。

爲此,我建議創建一個module來跟蹤您的應用程序中的連接。

注意AMQP有heartbeat特點:

AMQP 0-9-1提供了一個心跳功能,以確保應用層及時發現關於中斷連接(也完全沒有反應同行)。心跳還可以防禦可能終止「空閒」TCP連接的某些網絡設備。

默認情況下,amqplib's hearbeat設置爲0意味着沒有心跳。