Pull to refresh
1
1
Subscribers
Send message

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

Level of difficultyMedium
Reading time13 min
Reach and readers14K

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

Читать далее

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

Level of difficultyMedium
Reading time8 min
Reach and readers8.5K

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

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

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

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

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

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

Читать далее

Information

Rating
Does not participate
Registered
Activity