Why RabbitMQ - openremote/or-objectdetection GitHub Wiki

Research

For our project we wanted to examine whether a message queue implementation would be good enough for most hobby use cases which this project will most likely be used for, to determine this we tested whether or not RabbitMQ would be a limiting factor in passing frames to consumers from a published topic.

Setup

This was tested on my personal pc:

  • Ryzen 7 3700x
  • 16GB DDR4 3200mhz
  • GTX 1080 8gb

Test

The complete environment as is was run on my personal computer (all docker containers), after this i started a video detection queue as it would be run within the normal system, and monitored a local RabbitMQ instance to determine whether RabbitMQ would be a limiting factor, or my PC's capabilities would limit the messages send. My PC could manage ~20 frames depending on the number of objects within the feed, as can be seen in the chart below, RabbitMQ was not a limiting factor in sending the messages:

RabbitMQ Chart

This should come as no surprise since RabbitMQ has been shown to be able to handle upwards of 1 million messages per second. In our case case passing through large binary data, i would expect the limit to be ~50000 at best, which is still plenty for our use-case.