Вы когда-нибудь были в банке, когда он занят? Вы бы подождали в очереди.
«Но, - можно сказать, - не имеет смысла добавлять больше сотрудников для обработки большего числа клиентов? Это потому, что добавлять персонал дороже, чем нанимать очередь» и немного пожертвовать временем отклика? "
Это было бы правильно. Это может быть довольно затратным для персонала банка, исходя из пикового числа клиентов , которые будут приходить каждый день. Работать с персоналом ниже этого уровня дешевле, и некоторые клиенты ждут в очереди.
Кроме того, число клиентов в день не предсказуемо на 100% . Очередь позволяет избыточному спросу ждать, не нарушая систему.
Очереди включают развязку .
Например, представьте интернет-магазин , где покупатели покупают пункт. Они выбирают товар, предоставляют номер кредитной карты и нажимают кнопку «Купить». Если кредитная карта отклонена, интернет-магазин может сразу же попросить их повторно ввести номер. Это взаимодействие должно происходить немедленно, пока клиент еще находится в сети.
Однако клиенту не нужно ждать, пока генерируется счет-фактура, в систему учета добавляется запись, а инвентаризация списывается. полка. Это может быть отделен от процесса заказа. Хороший способ сделать это состоит в том, чтобы поместить sh порядок в очередь, которая может обрабатываться следующей системой .
Если эта «следующая система» окажется в автономном режиме при на данный момент нет причин отменять всю продажу . Транзакция может быть обработана, когда «следующая система» вернется в онлайн. Это гораздо лучше, чем сбои всего процесса только потому, что один компонент (который не требуется немедленно) имеет сбой.
Итог: Очереди отлично . Они позволяют лучше обрабатывать сбои. Они делают вещи более устойчивыми (просто подождите несколько минут и попробуйте снова!). Они должны использоваться всегда, когда процесс совместим с архитектурой очередей.