2017-02-09 7 views
-2

Я новичок, который только начал читать о распределенной системе. Мне интересно, какие варианты использования распределенной очереди в отличие от очередей на каждой машине. Например, как RabbitMQ используется среди разных веб-серверов. Как он используется, например, при балансировке нагрузки?Использовать случаи распределенной очереди на веб-сервере?

ответ

1

Обычно мы используем распределенные очереди, когда первоначальная стоимость обработки некоторых заданий является слишком дорогостоящей или ненужной. Например, когда вы загружаете видео на YouTube, обычно происходит некоторая обработка видео, которое происходит до того, как оно будет отображаться на сайте. В современной сети пользователям может быть неприемлемо ждать, пока происходит эта обработка. Таким образом, видео может быть сохранено и задача помещена в очередь, так что обработка может произойти позже. Затем другие машины, которые проводят опрос в очереди, могут обрабатывать видео на досуге. Это означает, что пользователю не нужно ждать, пока их видео будет обработано, прежде чем они смогут продолжать делать другие вещи на сайте. Он также критически допускает буфер для периодов высокой пропускной способности. Если пользователи загружают видео быстрее, чем они могут обрабатываться серверами YouTube, очередь растет независимо от способности обрабатывать элементы.

Другое соображение заключается в том, что распределенный характер очереди допускает отказоустойчивость. В примере на YouTube, который позволяет веб-сайту отвечать на пользователя, уверяя пользователя, что их видео будет в конечном итоге будет обработан. Обычно распределенные очереди имеют настраиваемые уровни репликации, где, когда элемент помещается в очередь, он гарантированно реплицируется на n узлах и поэтому вряд ли будет потерян.

Смежные вопросы