В этой карусели я разобрал дизайн Distributed Message Queue (распределенной очереди сообщений), сфокусировавшись на архитектурных решениях, которые позволяют обрабатывать миллиарды событий в сутки.
Что внутри:
✅ Разделение на партиции: Как масштабировать систему горизонтально и не потерять порядок сообщений.
✅ Модель PULL vs PUSH: Почему гиганты выбирают Pull для управления нагрузкой (backpressure).
✅ Гарантии доставки: Честный разговор о трейд-оффах между скоростью и надежностью (At-least-once vs Exactly-once).
🔥 Техническая «фишка» поста: Zero-copy Многие считают, что высокоуровневые языки вроде Python слишком медленны для таких задач. Но это миф. Используя системный вызов sendfile (в Python это os.sendfile), мы можем передавать данные напрямую из Page Cache в сетевой сокет.
В этом случае Python выступает лишь «дирижером» для ядра ОС. Данные вообще не копируются в память процесса и не трогают GIL, что позволяет выжимать максимум из пропускной способности сети даже на скриптовых языках.
Post #64
805
System_Design_Message_Queue_Final.pdf69.5 KB
- ❤ 3
- ❤🔥 3
- 👍 3