Mantenimiento del cliente en ZMQ ROUTER

¿Cómo mantiene el socket ROUTER ZeroMQ sus conexiones de cliente internamente?

La guía dice que cada cliente obtiene una ID única, pero no está claro en:

¿Qué cuenta como cliente (cada máquina es un cliente diferente o cada aplicación conectada es diferente?)¿Hay un límite en el número de solicitudes recibidas de un cliente?

La razón es que estoy haciendo pruebas de estrés con este código (dehttp://hintjens.com/blog:42) con ab:

#include "czmq.h"

int main(void)
{
    zctx_t *ctx = zctx_new();
    void *router = zsocket_new(ctx, ZMQ_ROUTER);
    zsocket_set_router_raw(router, 1);
    zsocket_set_sndhwm(router, 0);
    zsocket_set_rcvhwm(router, 0);
    int rc = zsocket_bind(router, "tcp://*:8080");
    assert(rc != -1);

    while (true) 
    {
        //  Get HTTP request
        zframe_t *handle = zframe_recv(router);
        if (!handle) break;          //  Ctrl-C interrupt
        char *request = zstr_recv(router);
        puts(request);     //  Professional Logging(TM)
        free(request);     //  We throw this away

        //  Send Hello World response
        zframe_send(&handle, router, ZFRAME_MORE + ZFRAME_REUSE);
        zstr_send(router, "HTTP/1.0 200 OK\r\n""Content-Type: text/plain\r\n""\r\n""Hello, World!");

        //  Close connection to browser
        zframe_send(&handle, router, ZFRAME_MORE);
        zmq_send(router, NULL, 0, 0);
    }
    zctx_destroy(&ctx);
    return 0;
}

Cuando se le da el comandoab -n 1000 -c 10 http://192.168.74.1:8080/ ocasionalmente se completa bien, pero muchas veces simplemente se cuelga por un tiempo y luego se completa bien o falla conapr_pollset_poll: The timeout specified has expired (70007) después de un número aleatorio de mensajes (por ejemplo, 300, 700, etc.)

La parte interesante es que, mientras ab está suspendido (tal vez esperando respuesta), si abre una conexión diferente desde una máquina / navegador diferente, tiene éxito. ¿Cómo funciona una nueva conexión desde un navegador diferente, mientras que ab solo está dando vueltas?

Entonces, preguntándome si esto es un "límite de conexión" de ROUTER o algo más que esté sucediendo. Tenga en cuenta que HWM se estableció en 0.

Respuestas a la pregunta(1)

Su respuesta a la pregunta