sit*_*ein 5 load-balancing message-queue
阅读常见消息队列系统(例如 RabbitMQ、ActiveMQ)的文档,似乎负载平衡总是由队列系统(循环)或由生产者使用消息上的多个队列或属性来完成。然而,在我们的应用程序中,没有人(甚至消费者)知道处理消息需要多长时间。它可以在几毫秒到几小时之间(它基本上是在任意输入 x 上计算任意函数 f)。因此,负载平衡应该由消费者执行,因为它们仅在其“负载”低于阈值时才接受消息(负载可以是正在执行的作业的数量、CPU 负载等)。理想情况下,生产者将一条消息放入队列中,该消息被“提供”给所有消费者,但只有一个消费者接受并处理该消息。甚至可能发生第一轮没有消费者接受它的情况,它一直留在队列中,直到有一个消费者有空闲资源。所以可能的问题是:对于任何常见的消息队列系统来说,这是否可能以某种方式实现,或者我们是否找错了方向?
| 归档时间: |
|
| 查看次数: |
3712 次 |
| 最近记录: |