用例在Web服务器中分布式队列?

时间:2017-02-09 01:53:42

标签: rabbitmq message-queue distributed-system

我是刚刚开始阅读有关分布式系统的新手。 我想知道分布式队列的一些用例是什么,而不是每台机器上的队列。 例如,如何在不同的Web服务器之间使用RabbitMQ。如何在负载平衡中使用它?

1 个答案:

答案 0 :(得分:1)

当处理某些任务的前期成本过高或者不必要时,我们通常使用分布式队列。例如,当您将视频上传到YouTube时,通常会对网站上显示的视频进行一些处理。在现代网络中,用户在进行处理时必须等待是不可接受的。因此,可以存储视频并将任务放在队列中,以便稍后进行处理。然后,轮询队列的其他机器可以在闲暇时处理视频。这意味着用户不必等待他们的视频处理,然后才能继续在网站上执行其他操作。它还严格地允许缓冲期用于高吞吐量。如果用户上传视频的速度快于YouTube服务器处理的速度,则队列的增长与后端处理项目的能力无关。

另一个考虑因素是队列的分布式特性允许容错。在YouTube示例中,该网站允许网站响应用户,向用户确保他们的视频最终将被处理。通常,分布式队列具有可配置的复制级别,一旦将项目放入队列,它就可以保证在n个节点上复制,因此不太可能丢失。