2017-02-09 82 views
-2

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

回答

1

当处理某些任务的前期成本太高或者不必要时,我们通常会使用分布式队列。例如,当您将视频上传到YouTube时,通常会在视频显示在网站上之前进行一些处理。在现代网络中,用户不得不等待处理过程发生。因此,可以存储视频并将任务放入队列中,以便稍后进行处理。然后,轮询队列的其他机器可以在闲暇时处理视频。这意味着用户在继续在网站上做其他事情之前不必等待他们的视频进行处理。它还批判性地允许高吞吐量的缓冲区。如果用户上传视频的速度比YouTube服务器能够处理的更快,则队列的增长将独立于后端处理项目的能力。

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