ZMQ设备队列未正确加载平衡

时间:2012-06-29 20:26:28

标签: load-balancing distributed-computing zeromq

我知道ZMQ提供了自己进行负载均衡的所有灵活性。但是,我期望开箱即用的经纪人,大约4行代码使用行

zmq_device (ZMQ_QUEUE, frontend, backend);

能够很好地平衡负载,因为文档说它确实负载平衡。

  

ZMQ_QUEUE创建一个共享队列,该队列收集来自一组客户端的请求,并在一组服务中公平地分发这些请求。请求从前端连接排除,并在后端连接之间进行负载平衡。回复会自动返回发出原始请求的客户端。

我有大量的后端服务,但我发现我的前端客户经常需要等待几秒才能获得< 1:1设置中的1/10秒(客户端和服务机器的数量相同)。我怀疑ZMQ没有开箱即用的负载平衡 - 即使它没有带宽等,它也会向同一个服务发送太多请求。

我认为这部分是因为服务是多线程的,这使得它们最多可以处理10个并发请求,但是在接近第10个请求时它会大大减慢,即使它仍然可以接受它们。随机分布是理想的。是否有开箱即用的方法可以做到这一点,或者可以用几行代码完成,还是我必须从头开始编写自己的代理?

1 个答案:

答案 0 :(得分:0)

Fwiw问题是当工人没有足够的空间时工作人员正在接受工作,问题不在ZMQ层本身。