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

  • распределение задач
  • планирование исполнения
  • коммуникация микросервисов
  • для повышения отказоустойчивочти и повышения гарантии доставки На первом картинке изображена простейшая очередь. Продьюсеры пишут в одну очередь, а консьюмеры из неё читают. Этот вариант не масштабируюется, у него низкая надёжность. Это связано с тем, что отказ очереди - потеря всех данных. Второй вариант, когда продьюсеры пишут не в одно место. Т.о достигается масштабируемостью. Из минусов то, что в случае отказа одного из хранилищь, мы теряем данные. У третьего варианта мы дублируем наши сообщения. В случае отказа одной из очередей, мы имеем резервные данные. Но тут опять же есть свой минус - надо быть осторожным, что сообщение точно выполнилось столько раз, сколько нам нужно. На тему повышения надёжности можно продолжить в сторону репликации. Механизм репликации широко распространен в работе с бд. Об этом позже напишу.

#queue #systemdesign #очереди

Очереди - то, что практически везде используются | Сетка — социальная сеть от hh.ru Очереди - то, что практически везде используются | Сетка — социальная сеть от hh.ru