Обновить
8K+
1

Пользователь

8
Рейтинг
1
Подписчики
Отправить сообщение

Проектируем сервис HTTP-запросов: Kafka, PostgreSQL, Redis-очередь и миллионы логических партиций

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели13K

Ни одна «одна технология» не закрывает это без слоёв. Сначала — почему в стеке именно Kafka, PostgreSQL и Redis; дальше — как мы спроектировали сервис Requester: контекст, движение данных, внутренние воркеры, graceful shutdown, детали rate limit / retry / cache / отложенных задач, wake-up, тестирование и узкое место с большими payload в Redis.

Читать далее

Очередь на Redis с Lua: порядок в партициях, общий пул воркеров и отложенные сообщения

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели8.3K

Перед командой встала типичная для высоконагруженных сервисов постановка по обработке сообщений:

1. Порядок обработки в рамках одной логической партиции

2. Очень много ключей партиций

3. Ограниченный пул воркеров, который шарится между партициями, при этом одна тяжёлая партиция не должна блокировать остальные

4. Ретраи и отложенные сообщения

Ни одна готовая «одна технология» не закрывает это из коробки без компромиссов. Ниже — как мы к этому пришли и что в итоге сделали в виде библиотеки smart-redis-queue (очередь на Redis, логика в Lua-скриптах).

Читать далее

Информация

В рейтинге
791-й
Зарегистрирован
Активность