У меня были мысли в эту сторону, но пока в приоритете минимальное потребление памяти и производительность под пиковую нагрузку. Но если требования к точности вырастут — Sorted Set с таймстемпами точно будет следующим шагом.
Под этим я имел в виду, что система может быть масштабирована горизонтально, без потери данных и дублирования уведомлений. Раньше вся логика обработки событий была завязана на один процесс, а теперь она распределена и использует общее хранилище. Это позволяет нескольким воркерам работать одновременно и эффективно справляться с большим количеством событий.
Распределение событий по воркерам происходит с помощью RabbitMQ
Вся агрегация вынесена в общее хранилище (Redis), доступное для всех воркеров.
Используются Lua-скрипты для атомарной работы с данными и устранения гонок.
Поддерживается независимая работа нескольких воркеров без риска дублирования уведомлений.
Теперь система может обрабатывать миллионы событий в час и не упирается в ограничения одного инстанса воркера — это и есть масштабирование в контексте highload-сервиса.
У меня были мысли в эту сторону, но пока в приоритете минимальное потребление памяти и производительность под пиковую нагрузку. Но если требования к точности вырастут —
Sorted Set
с таймстемпами точно будет следующим шагом.Спасибо за идею!
Спасибо за вопрос!
Под этим я имел в виду, что система может быть масштабирована горизонтально, без потери данных и дублирования уведомлений. Раньше вся логика обработки событий была завязана на один процесс, а теперь она распределена и использует общее хранилище. Это позволяет нескольким воркерам работать одновременно и эффективно справляться с большим количеством событий.
Распределение событий по воркерам происходит с помощью RabbitMQ
Вся агрегация вынесена в общее хранилище (Redis), доступное для всех воркеров.
Используются Lua-скрипты для атомарной работы с данными и устранения гонок.
Поддерживается независимая работа нескольких воркеров без риска дублирования уведомлений.
Теперь система может обрабатывать миллионы событий в час и не упирается в ограничения одного инстанса воркера — это и есть масштабирование в контексте highload-сервиса.