[zeromq-dev] ZeroMQ Secure Broadcast with Proxy losing messages using C# clrzmq
up201503995
up201503995 at fe.up.pt
Mon Apr 27 18:40:54 CEST 2020
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
More information about the zeromq-dev
mailing list