Реализация геораспределенной персистентной очереди сообщений на примере Yandex Message Queue Архитектуры, масштабируемость
Общий трудовой стаж около 8 лет. За 4 года в Яндексе успел позаниматься как продуктовой, так и инфраструктурной разработкой. Может пообщаться как про эксперименты с ML, так и про построение надежной и производительной архитектуры, способной держать десятки тысяч запросов в секунду.
План доклада:
* Что такое распределенная очередь сообщений.
* Классификация распределенных очередей.
* Практические задачи, решаемые распределенными очередями.
* Понятие доставки сообщения.
* Семантика доставки at most once с примерами.
* Семантика доставки at least once с примерами.
* Семантика доставки exactly once с примерами.
* Комбинирование семантик доставки сообщений.
* Способы достижения exactly once при участии клиента.
* AWS SQS API: CreateQueue, SendMessage, ReceiveMessage, DeleteMessage.
* AWS SQS STD/FIFO-очереди и работа с сообщениями.
* Архитектура YMQ (AWS SQS API over YDB).
* Создание очереди при сбоях: двухфазный коммит и сборка мусора.
* Понятие мастера очереди.
* Преимущества мастера. Кэш сообщений, быстрые метрики.
* Преимущества мастера. Уменьшение конкуренции при доступе к данным.
* Преимущества мастера. Легкое квотирование.
* Преимущества мастера. Батчинг запросов.
* Универсальный батчинг для очередей с разным профилем нагрузки.
* Сложности с мастером: два мастера, ноль мастеров.
* Сложности с мастером: отказоустойчивость и масштабируемость.
* Тестирование распределенной очереди.