Блог инженера

History is written by its contributors

Consistent Hashing: математика за load balancing

2025-08-16 время чтения 5 мин Algorithms Distributed-Systems Math Ilya Brin

Привет, бро! 👋

Представь: у тебя 1000 серверов и миллионы запросов. Как равномерно распределить нагрузку так, чтобы при добавлении нового сервера не пришлось перехешировать всё?

Обычный hash(key) % servers превращается в катастрофу при масштабировании. Добавил один сервер - и 90% данных нужно перемещать!

Но есть элегантное решение: Consistent Hashing. Математика, которая спасает от хаоса в distributed systems.

Разбираем алгоритм, который использует Amazon DynamoDB, Cassandra и Redis Cluster 🚀

Читать далее

Система уведомлений: как синхронизировать миллионы устройств без боли

Привет, архитектор! 📱

Тебе нужно построить систему уведомлений, которая работает как у больших парней? Чтобы сообщения приходили мгновенно на все устройства пользователя, а сервер не падал от нагрузки?

Разберём, как спроектировать notification service, который выдержит миллионы пользователей и синхронизирует состояние между их устройствами.

Читать далее

NSQ: идеальная очередь сообщений для real-time систем (когда Redis уже не справляется)

2025-04-21 время чтения 8 мин Distributed-Systems Message-Queues Nsq Ilya Brin

Привет, архитектор распределённых систем! 🚀

Замучился с настройкой RabbitMQ?
Устал от потери сообщений в Redis?
Нужно что-то, что просто работает на любом масштабе?

NSQ - очередью сообщений, которая используется в Discord, Bitly и других высоконагруженных системах.

На примерах разберёмся, когда NSQ не просто полезен, а абсолютно идеален для задачи.

Читать далее