【发布时间】:2017-02-09 01:53:41
【问题描述】:
我是一个刚开始阅读分布式系统的新手。 我想知道分布式队列与每台机器上的队列相比有哪些用例。 例如,如何在不同的 Web 服务器之间使用 RabbitMQ。例如,它是如何用于负载平衡的?
【问题讨论】:
标签: rabbitmq message-queue distributed-system
我是一个刚开始阅读分布式系统的新手。 我想知道分布式队列与每台机器上的队列相比有哪些用例。 例如,如何在不同的 Web 服务器之间使用 RabbitMQ。例如,它是如何用于负载平衡的?
【问题讨论】:
标签: rabbitmq message-queue distributed-system
当处理某些任务的前期成本太高或不必要时,我们通常会使用分布式队列。例如,当您将视频上传到 YouTube 时,通常会在视频显示在网站上之前对其进行一些处理。在现代网络中,用户不得不等待处理发生是不可接受的。因此,可以存储视频并将任务放入队列中,以便稍后进行处理。然后,轮询队列的其他机器可以在闲暇时处理视频。这意味着用户不必等待他们的视频被处理,就可以继续在网站上做其他事情。它还严格允许在高吞吐量期间提供缓冲区。如果用户上传视频的速度超过了 YouTube 服务器的处理速度,则队列的增长与后端处理项目的能力无关。
另一个考虑因素是队列的分布式特性允许容错。在 YouTube 示例中,这允许网站响应用户,向用户保证他们的视频最终会被处理。通常分布式队列具有可配置的复制级别,一旦将项目放入队列,它就可以保证在 n 个节点上被复制,因此不太可能丢失。
【讨论】: