Search code examples
callbackrabbitmqproducer-consumermessagebrokerconsumer

Does RabbitMQ keeps an open connection for the consumer?


I am trying to implement a RabbitMQ solution in an environment where all connections have to be started from the secure zone to the less secure zone.

The standard RabbitMQ implementation foresees the use of consumer subscription and callbacks. I guess this should not be a problem since the connection for a subscription is started by the consumer which is in the secure zone. My question is the following:

  • After the subscription the (TCP?) connection stays open all the time in order to support subsequent callbacks? I mean, the callbacks use the same connection that was triggered by the consumer when subscribing?

Solution

  • After the subscription the (TCP?) connection stays open all the time in order to support subsequent callbacks? I mean, the callbacks use the same connection that was triggered by the consumer when subscribing?

    Yes. You can observe this using many different means - network tools like netstat, ss, Wireshark, or by using RabbitMQ tools like the management web interface or the rabbitmqctl command. Finally, all connections / disconnections are logged.