how to best run a service that many clients connect to every few seconds?
I'm running a simulator backend that allows clients to connect to it using the rosservice calls. Everything works fine with a few clients connected (<20 or so) but if I try a large-scale test with 64 clients, it will fail to connect on occasion. I'm not sure exactly what the issue is. I worked around it by implementing retries and only after trying a bunch of times failing.
Is the problem with the callback queue getting overloaded? Is there a buffer of service requests that is hidden away somewhere? (I had trouble with small buffers on my data topics already, but that was a simple fix!) Maybe it's a threading thing, although the backend is currently single-threaded, and the clients are multi-threaded but just to run a spinner on a completely disjoint messaging queue for client-client communications. If the global callback queue is involved then it is only getting touched by one thread ever per process.
Thanks for any help/pointers!