I am doing some performance tests on ZeroMQ to compare it with others like RabbitMQ and ActiveMQ.

In my broadcast tests and to avoid "The Dynamic Discovery Problem" as referred by ZeroMQ documentation I have used a proxy. In my scenario, I am using 50 concurrent publishers each one sending 500 messages with 1ms delay between sends. Each message is then read by 50 subscribers. And as I said I am losing messages, each of the subscribers should receive a total of 25000 messages and they are each receiving between 5000 and 10000 messages only.

I am using Windows and C# .Net client clrzmq4 (4.1.0.31).
Code to reproduce the issue is available at https://pastebin.com/SEqEhSL1


I have already tried some solutions that I found on some posts:

    I have set linger to TimeSpan.MaxValue
I have set ReceiveHighWatermark to 0 (as it is presented as infinite, but I have tried also Int32.MaxValue) I have set checked for slow start receivers, I made receivers start some seconds before publishers I had to make sure that no garbage collection is made to the socket instances (linger should do it but to make sure) I have a similar scenario (with similar logic) using NetMQ and it works fine. The other scenario does not use security though and this one does (and that's also the reason why I use clrzmq in this one because I need client authentication with certificates that is not yet possible on NetMQ). I have also tested this scenario with clrzmq but with no security and it worked

Does someone know another thing to check? Or has it happened to anyone before?

Thanks,

Davide Costa
_______________________________________________
zeromq-dev mailing list
[email protected]
https://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to