动态负载均衡的任务队列

时间:2013-01-19 08:30:26

标签: load-balancing message-queue task-queue gearman

设置
前端机器接收Web请求,并将3种不同类型的任务放入Gearman服务器 在该齿轮箱服务器上注册的3台工人机器,每台机器都可以执行任何这些任务。

不同的任务消耗不同的资源。
每个任务在cpu / ram / io消耗方面都不同 队列中的任务量远远大于工作者的数量,这意味着每个工作机器都使用gearman注册了多个工作器实例。

如何动态负载均衡
问题是一个工作机器可以获得所有cpu扩展任务,另一个工作机器可以获得i / o扩展任务,而理想情况下,工作人员可以更好地并行执行所有这些不同类型的任务。

也许齿轮手不是正确的工具?

1 个答案:

答案 0 :(得分:0)

可能你可以使用具有fair dispatching
的RabbitMQ 使用3个不同的队列, 一个用于cpu消耗任务,一个用于i / o,一个用于网络。

因此,每当工作机器完成任何这些任务时,它就会知道它完成了它并获得了相同资源消耗类型的另一个任务。