Search
Write a publication
Pull to refresh
2
0
Егор Коновалов @e11sy

User

Send message

У меня были мысли в эту сторону, но пока в приоритете минимальное потребление памяти и производительность под пиковую нагрузку. Но если требования к точности вырастут — Sorted Set с таймстемпами точно будет следующим шагом.

Спасибо за идею!

Спасибо за вопрос!

Под этим я имел в виду, что система может быть масштабирована горизонтально, без потери данных и дублирования уведомлений. Раньше вся логика обработки событий была завязана на один процесс, а теперь она распределена и использует общее хранилище. Это позволяет нескольким воркерам работать одновременно и эффективно справляться с большим количеством событий.

  • Распределение событий по воркерам происходит с помощью RabbitMQ

  • Вся агрегация вынесена в общее хранилище (Redis), доступное для всех воркеров.

  • Используются Lua-скрипты для атомарной работы с данными и устранения гонок.

  • Поддерживается независимая работа нескольких воркеров без риска дублирования уведомлений.

Теперь система может обрабатывать миллионы событий в час и не упирается в ограничения одного инстанса воркера — это и есть масштабирование в контексте highload-сервиса.

Information

Rating
10,168-th
Registered
Activity

Specialization

Fullstack Developer, Web Developer
Middle
From 130,000 ₽
Git
SQL
TypeScript
Node.js
RabbitMQ
Redis
MongoDB
PostgreSQL
Docker
REST