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

Use cases distributed queue in web server?

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

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

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