Работа над новым прототипом для приложения, которое должно быть способно обрабатывать 20 000+ входящих запросов в минуту в течение короткого периода времени (например, 20-30 минут) и возвращать результаты в реальном времени пользователю.
Пример: я показываю вопрос «да / нет», и вы должны иметь возможность опубликовать голосование «ДА» / «НЕТ» в нашем API, и наш API должен обработать его и предоставить информацию в реальном времени о том, сколько проголосовало «за» и сколько проголосовал №.
Все эти запросы необходимо сохранить в нашей базе данных MySQL.
Я не думаю, что разумно было бы напрямую сохранять эти 20К-запросы в реальном времени в базу данных, поскольку это создаст огромную нагрузку на базу данных, особенно учитывая, что нам нужны данные в реальном времени.
Так что моя идея заключалась в том, чтобы поместить Redis в качестве среднего слоя. API пишет в Redis, Redis возвращает счет в реальном времени.
Но мне все еще нужно сохранять данные. Можно ли сказать Redis записывать все строки в MySQL, когда есть свободные ресурсы?
Или вы бы предложили совершенно другой подход?
Я также изучил RabbitMQ, чтобы ставить в очередь все вставки и обрабатывать их, когда это возможно, но, насколько я знаю, это не может возвращать данные в реальном времени
У меня пока нет кода, так как я сначала рассматриваю инструменты, необходимые для реализации этого.