Transferring image frames over rabbitmq vs kafka

I am working with testing and comparison between the performance of various messaging broker protocols i.e. Apache Kafka, RabbitMQ etc with the Deepstream SDK.
Latency of sending a frame and receiving it on the consumer side is my preferred metric of performance measurement.
Any leads and opinions for the same will be of great help.


Can you refer to deepstream-test4 to setup and test? We will consider to do performance measurement.

I tried running deepstream-test4 sample application.

I am running a rabbitmq-server on a separate ubuntu machine.

My cfg_amqp.txt looks like this.
password = guest
hostname =
username = guest
port = 5672
exchange = amq.topic
topic = topicname

And the Error that I’m getting this error : Could not configure library, cannot connect to broker library.

I’m just not sure what is the right way to pass the hostname ( since my broker is running on IP : ). Can you please let me know the correct way of passing the hostname in cfg_amqp.txt.

Can you try with this sample test code:
it’s demonstrating connect to amqp broker and sending hello message.
or still with test4 sample change hostname = localhost and try again?

I was able to solve the problem.
In order to access the rabbitmq broker remotely, we have to create a new user on our rabbitmq-server with administrator tag.
After creating the new user and setting permissions to the new user over rabbitmq, I was able to execute deepstream-test4 and deepstream-test5 sample applications.

Now, I want to send a serialized Mat object using the code test_amqp_proto_async.cpp OR test_amqp_proto_sync.cpp in the directory amqp_protocol_adaptor.
Although I’m able to send Hello to the rabbitmq-server and I’m able to listen to the incoming messages, I can’t consume them.
Please help me with the consumer implementation.

We do not have latency data. you will have to change the message broker in test 4 or test 5 to do that and only metadata can be sent. Test 4 will not send image frames, if that is needed you will need to customize the code