Redis Streams в качестве буфера приема по сравнению с двойной асинхронной записью в базу данных и Redis со скоростью 50 Python

Программы на Python
Anonymous
Redis Streams в качестве буфера приема по сравнению с двойной асинхронной записью в базу данных и Redis со скоростью 50

Сообщение Anonymous »

Создание конвейера Python, принимающего около 50 тыс. сообщений WebSocket/сек. Каждое сообщение должно попасть в PostgreSQL и в работающий интерфейс. Два варианта:
Вариант А — записать оба в обработчик одновременно

Код: Выделить всё

WS handler → async PostgreSQL write
→ Redis Stream → frontend
Вариант Б — Redis в качестве буфера, всю работу выполняют потребители

Код: Выделить всё

WS handler → Redis Stream
├── Consumer → PostgreSQL ingestion
└── Consumer → frontend
Какой шаблон лучше в этом масштабе и почему?
Или есть еще лучшее решение?

Вернуться в «Python»