besogonskiy
@besogonskiy
работаю php laravel разработчиком.

Как справиться с частым потоком входящих данных?

Ситуация такая: На сайт прилетают очень много входящих запросов где есть поле, предположим ФИО. Мы должны проверить есть ли в базе запись с этим ФИО, а если нет, то сохранить это ФИО там и потом запустить некий воркер, который будет собирать информацию по этому ФИО на ресурсах интернета.

Вопрос такой: Как организовать по правильному архитектуру для того чтобы не положить базу и чтоб просто все работало как положено?

Моё мнение, что по несколько тысяч раз в секунду дергать обычную MYSQL базу накладно.

Я думаю что надо использовать Эластик Сёрч для индексирования данных и при этом еще и кэшировать данные, чтоб, например, если пришел запрос "Иванов Иван Иванович" мы сначала брали из кэша результат, в котором ключем было бы как раз это ФИО, а значением было бы checked (проверен или не проверен). Если в кэше нет результата, то уже обращаться к эластику. Если в Эластике нет, то тогда добавлять запись в базу и запускать воркер и потом обновлять кэш как только вся информация будет собрана и переиндексировать Эластик.

Что еще можете посоветовать? Что использовать для кэширования.
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 2
@sadsdasdasdsadsadsadsadsa
WEB developer
по несколько тысяч раз в секунду дергать обычную MYSQL базу накладно
ну так давайте elasticsearch
по несколько тысяч раз в секунду дергать
......... я так понимаю вам нужно масштабировать приложение
Ответ написан
@rPman
И причем тут эластик?

Тебе прилетает запрос, ты проверяешь его наличие в списке воркеров и в списке решенных (пусть к примеру уже обработанные запросы повторно обрабатываются через какой то интервал, т.е. этот кеш чистишь по таймеру или пометку ставишь что устарел) затем если это новый запрос, складываешь в базу как задачу к воркеру и все.

Отдельным демоном может мониторить изменения в воркерах и рассылать клиентам по websocket отмашку что решение найдено вот смотрите, а иначе показывать страничку - мы работаем.

Ну и само собой демон или много, берут задачи из списка воркера и ищут.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы